ゲームオブジェクトを回転させることで、 GoKitの (ノードからの) ハンドルを回転させようとしています。基本的に、プロジェクトに GoKit を追加し、 GoDummyPathスクリプトを添付してゲーム オブジェクトを作成しました。直線を作成するために 2 つのノード (またはハンドル) のみを使用しました。上の画像は、私が達成したいことを示しています。元の位置 A から、ゲーム オブジェクトを回転させて、ハンドル (線) の位置に影響を与え、B と言うようにします。小さな円は、ゲーム オブジェクトの位置を表します。
インスペクターでゲームオブジェクトを回転させても線が回転できなかったので、以下のコードを に追加しましたGoDummyPathEditor
。
2 つの変数:
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
ハンドルはまだ動かせません。ここで何が欠けているのかわかりません。インスペクターの回転プロパティを使用してゲーム オブジェクトを回転させてハンドルを回転させるにはどうすればよいですか?