Handles.RotationHandle
Declaration
public static Quaternion RotationHandle(Quaternion rotation, Vector3 position);public static Quaternion RotationHandle(Handles.RotationHandleIds ids, Quaternion rotation, Vector3 position);Параметры
| Параметр | Описание |
|---|---|
| ротация | Ориентация ручки в 3D пространстве. |
| должность | Центр ручки в пространстве 3D. |
| Идентификационные номера | Управление IDs ручек. Используйте RotationHandleIds.default. |
Возвращаемое значение
Кватернион Новое значение поворота, измененное взаимодействием пользователя с ручкой. Если пользователь не передвигал ручку, она возвратит то же значение, которое вы передали функции.
Описание
Сделайте Scene ручку вращения вида.
Это будет вести себя как встроенный инструмент поворота в Unity. Примечание: Используйте HandleUtility.GetHandleSize там, где вы хотите иметь постоянные ручки размера экрана.
Поворот прикрепленного объекта с помощью ручки поворота.
// Name this script "RotateAtPointEditor" using UnityEngine; using UnityEditor;
[CustomEditor(typeof(RotateAtPoint))] [CanEditMultipleObjects] public class RotateAtPointEditor : Editor { public void OnSceneGUI() { RotateAtPoint t = (target as RotateAtPoint);
EditorGUI.BeginChangeCheck(); Quaternion rot = Handles.RotationHandle(t.rot, Vector3.zero); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Rotated RotateAt Point"); t.rot = rot; t.Update(); } } }
И скрипт, приложенный к этому GameObject:
// Name this script "RotateAtPoint" using UnityEngine;
[ExecuteInEditMode] public class RotateAtPoint : MonoBehaviour { public Quaternion rot = Quaternion.identity; public void Update() { transform.rotation = rot; } }