controlID | @param position Позиция маркера. |
position | @param position Позиция маркера. |
rotation | @param rotation Вращение маркера. |
size | @param size Размер маркера. |
eventType | Event type for the handle to act upon. By design it handles EventType.Layout and EventType.Repaint events. |
Рисует цилиндр. Передает его в обрабатываемые функции.
On EventType.Layout event, calculates handle distance to mouse and calls HandleUtility.AddControl accordingly.
On EventType.Repaint event, draws the handle shape.
Важно: Используйте HandleUtility.GetHandleSize если вам нужны маркеры постоянного размера.
// Draw shape on each axis of any GameObject // that has the "DummyScript.cs" script attached.
// DummyScriptEditor.cs (place this in Editor folder) [CustomEditor(typeof(DummyScript))] public class DummyScriptEditor : Editor { float size = 1;
void OnSceneGUI() { if (Event.current.type == EventType.Repaint) { Transform transform = (target as DummyScript).transform; Handles.color = Color.red; Handles.CircleHandleCap(0, transform.position + new Vector3(5, 0, 0), transform.rotation * Quaternion.LookRotation(new Vector3(1, 0, 0)), size, EventType.Repaint); Handles.color = Color.green; Handles.CircleHandleCap(0, transform.position + new Vector3(0, 5, 0), transform.rotation * Quaternion.LookRotation(new Vector3(0, 1, 0)), size, EventType.Repaint); Handles.color = Color.blue; Handles.CircleHandleCap(0, transform.position + new Vector3(0, 0, 5), transform.rotation * Quaternion.LookRotation(new Vector3(0, 0, 1)), size, EventType.Repaint); } } }
// DummyScript.cs public class DummyScript : MonoBehaviour {}