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

Объявление

public void DrawHandle();

Описание

Функция для отображения этого экземпляра в текущей камере дескриптора с использованием его текущей конфигурации.

Всегда записывайте свойства в дескриптор перед вызовом этой функции. Поместите вызовы этой функции в EditorGUI.BeginChangeCheck и EditorGUI.EndChangeCheck, чтобы обнаружить взаимодействие с пользователем и прочитать обновленную информацию. свойства из дескриптора.

Следующий компонент определяет объект со свойством Bounds.

using UnityEngine; public class BoundsExample : MonoBehaviour { public Bounds bounds { get { return m_Bounds; } set { m_Bounds = value; } } [SerializeField] private Bounds m_Bounds = new Bounds(Vector3.zero, Vector3.one); }

Следующий пользовательский редактор позволяет пользователю редактировать свойство границ для этого компонента в представлении "Сцена".

using UnityEditor; using UnityEditor.IMGUI.Controls; using UnityEngine; [CustomEditor(typeof(BoundsExample)), CanEditMultipleObjects] public class BoundsExampleEditor : Editor { private BoxBoundsHandle m_BoundsHandle = new BoxBoundsHandle(); // the OnSceneGUI callback uses the Scene view camera for drawing handles by default protected virtual void OnSceneGUI() { BoundsExample boundsExample = (BoundsExample)target; // copy the target object's data to the handle m_BoundsHandle.center = boundsExample.bounds.center; m_BoundsHandle.size = boundsExample.bounds.size; // draw the handle EditorGUI.BeginChangeCheck(); m_BoundsHandle.DrawHandle(); if (EditorGUI.EndChangeCheck()) { // record the target object before setting new values so changes can be undone/redone Undo.RecordObject(boundsExample, "Change Bounds"); // copy the handle's updated data back to the target object Bounds newBounds = new Bounds(); newBounds.center = m_BoundsHandle.center; newBounds.size = m_BoundsHandle.size; boundsExample.bounds = newBounds; } } }

Смотрите так же: Editor.OnSceneGUI, Handles.SetCamera.

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