Объявление
public static void CylinderHandleCap(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType);Параметры
controlID | Идентификатор элемента управления для дескриптора. |
position | Положение ручки в пространстве Handles.matrix. |
rotation | Вращение ручки в пространстве Handles.matrix. |
size | Размер дескриптора в пространстве Handles.matrix. Используйте HandleUtility.GetHandleSize, если вам нужен постоянный размер экранного пространства. |
eventType | Тип события, на который будет воздействовать дескриптор. Он обрабатывает события EventType.Layout и EventType.Repaint. |
Описание
Рисует ручку цилиндра. Передайте это в функции обработки.
В событии EventType.Layout вычисляет расстояние ручки до мыши и соответственно вызывает HandleUtility.AddControl.< /p>
On EventType.Repaint event, draws the handle shape.

Добавьте следующий скрипт в папку Assets как CylinderExample.cs и добавьте компонент CylinderExample к объекту в сцене.
using UnityEngine;
public class CylinderExample : MonoBehaviour {}
Добавьте следующий скрипт в Assets/Editor как CylinderExampleEditor.cs и выберите объект с компонентом CylinderExample.
using UnityEditor;
using UnityEngine;
[CustomEditor(typeof(CylinderExample))]
public class CylinderExampleEditor : Editor
{
float size = 1f;
protected virtual void OnSceneGUI()
{
if (Event.current.type == EventType.Repaint)
{
Transform transform = ((CylinderExample)target).transform;
Handles.color = Handles.xAxisColor;
Handles.CylinderHandleCap(
0,
transform.position + new Vector3(3f, 0f, 0f),
transform.rotation * Quaternion.LookRotation(Vector3.right),
size,
EventType.Repaint
);
Handles.color = Handles.yAxisColor;
Handles.CylinderHandleCap(
0,
transform.position + new Vector3(0f, 3f, 0f),
transform.rotation * Quaternion.LookRotation(Vector3.up),
size,
EventType.Repaint
);
Handles.color = Handles.zAxisColor;
Handles.CylinderHandleCap(
0,
transform.position + new Vector3(0f, 0f, 3f),
transform.rotation * Quaternion.LookRotation(Vector3.forward),
size,
EventType.Repaint
);
}
}
}