Как заставить ручки в редакторе строк вращаться вращающимся игровым объектом

enter image description here

Я пытаюсь сделать ручки (из узлов) в GoKit вращаться, вращая игровой объект. В основном я добавил GoKit в свой проект и создал игровой объект с прилагаемым сценарием GoDummyPath. Я использовал только два узла (или дескрипторы) для создания прямой линии. Изображение выше показывает, чего я хочу достичь. Из исходной позиции A я хотел бы повернуть игровой объект, чтобы повлиять на позиции ручек (строки), чтобы сказать B. Маленький круг представляет положение игрового объекта.

Я не мог повернуть линию, вращая игровой объект в инспекторе, поэтому я добавил следующий код в GoDummyPathEditor:

Две переменные:

private Quaternion handleRotation;
private Transform handleTransform;

to 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

Я все еще не могу перемещать ручки. Я не знаю, чего мне здесь не хватает. Как я могу вращать ручки, вращая игровой объект через свойство вращения инспектора?

+1
16 янв. '18 в 17:02
источник поделиться

Посмотрите другие вопросы по меткам или Задайте вопрос