如何通过旋转游戏对象使行编辑器中的句柄旋转
我一直试图通过旋转游戏对象使GoKit中的句柄(来自节点)旋转。 基本上我将GoKit添加到我的项目中并使用附加的GoDummyPath脚本创建了一个游戏对象。 我只使用两个节点(或句柄)来创建一条直线。 上图显示了我想要实现的目标。 从原始位置A,我想要旋转游戏对象以影响手柄(线)的位置来表示B.小圆圈表示游戏对象的位置。
我无法通过在检查器中旋转游戏对象来旋转线,因此我将以下代码添加到GoDummyPathEditor
:
两个变量:
private Quaternion handleRotation; private Transform handleTransform;
到OnEnable()
handleTransform = _target.transform; handleRotation = Tools.pivotRotation == PivotRotation.Local ? handleTransform.rotation : Quaternion.identity; for (var i = 0; i < _target.nodes.Count; i++) _target.nodes [i] = handleTransform.TransformPoint (_target.nodes [i]);
if( GUI.changed )
OnInspectorGUI()
:
for (var i = 0; i < _target.nodes.Count; i++) _target.nodes [i] = handleTransform.InverseTransformPoint(_target.nodes [i]);
我换了:
Handles.Label( _target.nodes[i] + new Vector3( 3f, 0, 1.5f ), i.ToString(), _indexStyle );
有:
_target.nodes[i] = Handles.DoPositionHandle(_target.nodes[i], handleRotation);
完全改变了GoDummyPathEditor
我仍然无法移动手柄。 我不知道我在这里缺少什么。 如何通过检查器旋转属性旋转游戏对象来旋转手柄?