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

Handles.ConeHandleCap

建议更改

成功!

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

关闭

提交失败

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

关闭

取消

声明

public static void ConeHandleCap(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType);

参数

controlID 句柄的控制 ID。
position 句柄在 Handles.matrix 空间中的位置。
rotation 句柄在 Handles.matrix 空间中的旋转。
size 句柄在 Handles.matrix 空间中的大小。如果您想要恒定的屏幕空间大小,请使用 HandleUtility.GetHandleSize
eventType 句柄要处理的事件类型。根据设计,它处理 EventType.LayoutEventType.Repaint 事件。

描述

绘制锥形句柄。将其传递到句柄函数中。

EventType.Layout 事件中,计算句柄到鼠标的距离并相应地调用 HandleUtility.AddControl

EventType.Repaint 事件中,绘制句柄形状。

场景视图中的锥形句柄帽。

将以下脚本添加到您的 Assets 文件夹中,命名为 ConeExample.cs,并将 ConeExample 组件添加到场景中的某个对象。

using UnityEngine;

public class ConeExample : MonoBehaviour {}

将以下脚本添加到 Assets/Editor 中,命名为 ConeExampleEditor.cs,然后选择具有 ConeExample 组件的对象。

using UnityEditor;
using UnityEngine;

[CustomEditor(typeof(ConeExample))] public class ConeExampleEditor : Editor { float size = 1f;

protected virtual void OnSceneGUI() { if (Event.current.type == EventType.Repaint) { Transform transform = ((ConeExample)target).transform; Handles.color = Handles.xAxisColor; Handles.ConeHandleCap( 0, transform.position + new Vector3(3f, 0f, 0f), transform.rotation * Quaternion.LookRotation(Vector3.right), size, EventType.Repaint ); Handles.color = Handles.yAxisColor; Handles.ConeHandleCap( 0, transform.position + new Vector3(0f, 3f, 0f), transform.rotation * Quaternion.LookRotation(Vector3.up), size, EventType.Repaint ); Handles.color = Handles.zAxisColor; Handles.ConeHandleCap( 0, transform.position + new Vector3(0f, 0f, 3f), transform.rotation * Quaternion.LookRotation(Vector3.forward), size, EventType.Repaint ); } } }