rotation | @param rotation Вращение диска. |
position | @param position Центр диска. |
axis | @param axis Оси для вращения вокруг. |
size | @param size Размер диска в пространстве See Also:HandleUtility.GetHandleSize. |
cutoffPlane | @param cutoffPlane Если true, перетаскивается только фронтальная половина круга. Это полезно, когда у вас много перекрывающихся осей вращения (как в стандартном инструменте "rotate"), чтобы избежать путаницы. |
snap | @param size Размер маркера. |
Quaternion @return Новую позицию. Если пользователь не выполнил операцию, будет возвращено то же значение, что вы передавали в позицию.
Делает перемещаемый мышкой 3D диск. Важно: Используйте HandleUtility.GetHandleSize если вам нужны маркеры постоянного размера.
"Маркер слайдера в окне Scene".
To use this example, save this script in Assets/Editor:
using UnityEngine; using UnityEditor;
[CustomEditor( typeof( DiscHandle ) )] public class DiscHandleEditor : Editor { public float cylinderSize = 1;
void OnSceneGUI( ) { DiscHandle t = target as DiscHandle;
EditorGUI.BeginChangeCheck( ); Quaternion rot = Handles.Disc( t.rot, t.transform.position, new Vector3(1, 1, 0), 5, false, 1 );
if( EditorGUI.EndChangeCheck( ) ) { Undo.RecordObject( target, "Disc Rotate" ); t.rot = rot; t.Update( ); } } }
..and place this script on the object you wish to attach a Disc Handle:
using UnityEngine;
[ExecuteInEditMode] public class DiscHandle : MonoBehaviour { public Quaternion rot = Quaternion.identity;
public void Update( ) { transform.rotation = rot; } }