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

Handles.FreeRotateHandle

Declaration

public static Quaternion FreeRotateHandle(int id, Quaternion rotation, Vector3 position, float size);
public static Quaternion FreeRotateHandle(Quaternion rotation, Vector3 position, float size);

Параметры

Параметр Описание
Идентификатор Управление ID ручки.
ротация Ориентация ручки в 3D пространстве.
должность Центр ручки в пространстве 3D.
размер Размер ручки.

Примечание: Используйте HandleUtility.GetHandleSize там, где вы хотите иметь ручки постоянного размера экрана.

Возвращаемое значение

Кватернион Новое значение поворота, измененное взаимодействием пользователя с ручкой. Если пользователь не передвигал ручку, она возвратит то же значение, которое вы передали функции.

Описание

Сделайте ручку неограниченного вращения.

Ручка может свободно вращаться по всем осям. Вращающийся гаджета не имеет видимых осей и является просто круг в Scene вид. Пользователи могут нажать и перетащить изнутри круга, чтобы обеспечить вращение ввода в скрипт редактора.


FreeRotate ручка видно в Scene Вид.

// Name this script "FreeRotateEditor"
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(FreeRotate))] [CanEditMultipleObjects] public class FreeRotateEditor : Editor { public void OnSceneGUI() { FreeRotate t = (target as FreeRotate);

EditorGUI.BeginChangeCheck(); Quaternion rot = Handles.FreeRotateHandle(t.rot, Vector3.zero, 2); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Free Rotate"); t.rot = rot; t.Update(); } } }

И скрипт, прикрепленный к этому Handle:

// Name this script "FreeRotate"
using UnityEngine;

[ExecuteInEditMode] public class FreeRotate : MonoBehaviour { public Quaternion rot = Quaternion.identity; public void Update() { transform.rotation = rot; } }