position | @param position Центр маркера в 3D пространстве. |
rotation | @param position Центр маркера в 3D пространстве. |
Vector3
@return Новую позицию. Если пользователь не выполнил операцию, будет возвращено то же значение, что вы передавали в позицию.
Важно: Используйте HandleUtility.GetHandleSize если вам нужны маркеры постоянного размера.
Делает 3D маркер для позиции в окне Scene
Ведет себя примерно как встроенный инструмент "move" в Unity.
Для управления ориентацией маркера, установите в Handles.matrix приоритет на вызов этой функции.
"Делает так, что объект всегда смотрит в позицию маркера".
To use this example, save this script to the Assets/Editor folder:
using UnityEngine; using UnityEditor;
[CustomEditor( typeof( PositionHandle ) )] public class PositionHandleEditor : Editor { void OnSceneGUI( ) { PositionHandle t = target as PositionHandle;
// Set the colour of the next handle to be drawn: Handles.color = Color.magenta;
EditorGUI.BeginChangeCheck( ); Vector3 lookTarget = Handles.PositionHandle( t.lookTarget, Quaternion.identity );
if( EditorGUI.EndChangeCheck( ) ) { Undo.RecordObject( target, "Changed Look Target" ); t.lookTarget = lookTarget; t.Update( ); } }
}
...and place this script on the object to wish to edit the LookAt point for:
using UnityEngine;
[ExecuteInEditMode] public class PositionHandle : MonoBehaviour { public Vector3 lookTarget = new Vector3( 0,2,0 );
public void Update( ) { transform.LookAt( lookTarget ); } }