版本: Unity 6 (6000.0)
语言英语
  • C#

Handles.RotationHandle

建议更改

成功!

感谢您帮助我们提高 Unity 文档的质量。虽然我们无法接受所有提交,但我们确实阅读了用户提出的每个建议更改,并在适用情况下进行更新。

关闭

提交失败

由于某些原因,您的建议更改无法提交。请<a>稍后再试</a>。感谢您抽出时间帮助我们提高 Unity 文档的质量。

关闭

取消

声明

public static Quaternion RotationHandle(Quaternion rotation, Vector3 position);

声明

public static Quaternion RotationHandle(Handles.RotationHandleIds ids, Quaternion rotation, Vector3 position);

参数

rotation 句柄在 3D 空间中的方向。
position 句柄在 3D 空间中的中心。
ids 句柄的控制 ID。使用 RotationHandleIds.default。

返回值

Quaternion 用户与句柄交互修改后的新旋转值。如果用户未移动句柄,则将返回与传递给函数的值相同的值。

描述

创建一个场景视图旋转句柄。

这将类似于 Unity 中内置的旋转工具。如果您已将某些内容分配给 Undo.SetSnapshotTarget,它将与 Undo 完全配合使用。注意:在您可能希望拥有恒定屏幕大小的句柄的地方使用 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(); } } }

以及附加到此游戏对象的脚本

// Name this script "RotateAtPoint"
using UnityEngine;

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