Unity 6.3
0 онлайн 76 гостей 3 в системе
Вход

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; } }