Мои Уведомления
Привет, !
Мой Аккаунт Мои Финансы Мои Подписки Мои Настройки Выход
Руководство API скрипты

Объявление

public void OnDrawHandles();

Описание

Реализуйте этот метод для рисования неинтерактивных маркеров, когда доступен пользовательский инструмент редактирования.

Этот метод вызывается, когда для текущего выделения доступен пользовательский инструмент редактирования. Используйте этот метод для рисования информации в SceneView. Пользовательский инструмент редактора — это EditorTool с типом цели, заданным EditorToolAttribute. using System; using UnityEngine; using UnityEditor; using UnityEditor.EditorTools; [EditorTool("LightTool", typeof(Light))] public class CustomEditorLightTool : EditorTool, IDrawSelectedHandles { // OnToolGUI is called when the tool is active. Interactive handles belong here. public override void OnToolGUI(EditorWindow window) { var position = Tools.handlePosition; EditorGUI.BeginChangeCheck(); var result = Handles.PositionHandle(position, Quaternion.identity); if (EditorGUI.EndChangeCheck()) { var delta = result - position; Undo.RecordObjects(Selection.transforms, "Move Lights"); foreach (var light in targets) ((Light)light).transform.position += delta; } } // OnDrawHandles is called when a custom editor tool is available for the current selection. Use this to draw // information in the SceneView when any object matching the target type is selected. public void OnDrawHandles() { foreach (var light in targets) { // If the LightTool is active, draw a green radius handle. If it is not active, make the radius blue. Handles.color = EditorTools.IsActiveTool(this) ? Color.green : Color.blue; Handles.RadiusHandle(Quaternion.identity, ((Light)light).transform.position, 2f); Handles.color = Color.white; } } }

Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3