Handles
класс в UnityEditor
Описание
Настраиваемые 3D GUI элементы управления и чертежи в представлении Scene.
Ручки — это элементы управления 3D, которые Unity использует для манипулирования элементами в представлении Scene. Существует ряд встроенных Handle GUIs, таких как знакомые инструменты для позиционирования, масштабирования и вращения объекта через компонент Transform. Однако, также возможно определить свой собственный Handle GUIs для использования с пользовательскими редакторами компонентов. Такие GUIs могут быть очень полезным способом редактирования процедурно генерируемого Scene содержимого, "невидимых" элементов и групп связанных объектов, таких как точки маршрута и маркеры местоположения.
Вы также можете дополнить 3D Handle GUI в представлении Scene кнопками 2D и другими элементами управления, наложенными на представление Scene. Это делается путем включения стандартных Unity GUI в вызов Handles.BeginGUI и Handles.EndGUI в паре функций Editor.OnSceneGUI. Вы можете использовать HandleUtility.GUIPointToWorldRay и HandleUtility.WorldToGUIPoint для преобразования координат между мировыми координатами 2D GUI и 3D.
using UnityEngine; using UnityEditor; public class ExampleScript : MonoBehaviour { public float value = 7.0f; }
// A tiny custom editor for ExampleScript component [CustomEditor(typeof(ExampleScript))] public class ExampleEditor : Editor { // Custom in-scene UI for when ExampleScript // component is selected. public void OnSceneGUI() { var t = target as ExampleScript; var tr = t.transform; var pos = tr.position; // display an orange disc where the object is var color = new Color(1, 0.8f, 0.4f, 1); Handles.color = color; Handles.DrawWireDisc(pos, tr.up, 1.0f); // display object "value" in scene GUI.color = color; Handles.Label(pos, t.value.ToString("F1")); } }
.
Статические свойства
| Свойство | Описание |
|---|---|
| centerColor | Цвет, используемый для ручек, которые представляют центр чего-либо. |
| color | Цвет — это постоянное состояние, влияющее на все хендлы, отрисованные после его установки. Используйте DrawingScope, чтобы задать цвет для блока хендлов, не влияя на цвет остальных. |
| currentCamera | Получает или устанавливает камеру, которая в настоящее время выполняет отображение. |
| elementColor | Цвет по умолчанию объектов в режиме редактирования. |
| elementPreselectionColor | Цвет, используемый для выделения не выбранного объекта, находящегося под указателем мыши в пользовательском режиме редактирования. |
| elementSelectionColor | Цвет выбранных объектов в режиме редактирования. |
| inverseMatrix | Обратная матрица для всех операций с манипуляцией. |
| lighting | Подсвечиваются ли ручки? |
| lineThickness | Получает настройку предпочтения пользователя, которая контролирует толщину линий ручки инструмента. (Только для чтения) |
| matrix | Матрица для всех операций с манипуляцией. Используется функциями в HandleUtility и Handles для преобразования элементов управления. |
| preselectionColor | Цвет, используемый для выделения не выбранного элемента управления под указателем мыши. |
| secondaryColor | Мягкий цвет для использования для общих вещей. |
| selectedColor | Цвет, используемый для активного в данный момент элемента управления. |
| UIColliderHandleColor | Цвет, используемый для визуализации заполнения uGUI. |
| xAxisColor | Цвет, используемый для ручек, которые манипулируют координатами X чего-либо. |
| yAxisColor | Цвет, используемый для ручек, которые манипулируют координатами Y чего-то. |
| zAxisColor | Цвет, используемый для ручек, которые манипулируют координатами Z чего-то. |
| zTest | zTest ручек. |
Статические методы
| Метод | Описание |
|---|---|
| ArrowHandleCap | Нарисуйте стрелку, подобную той, что используется инструментом перемещения. |
| BeginGUI | Начать 2D GUI блок внутри 3D ручки GUI. |
| Button | Сделайте кнопку 3D. |
| CircleHandleCap | Нарисуйте круглую ручку. Передайте это в функции ручки. |
| ClearCamera | Очистка камеры. |
| ConeHandleCap | Нарисуйте ручку конуса. Передайте это в функции ручки. |
| CubeHandleCap | Нарисуйте ручку куба. Передайте это в функции ручки. |
| CylinderHandleCap | Нарисуйте ручку цилиндра. Передайте это в функции ручки. |
| Disc | Сделайте диск 3D, который можно перетаскивать мышей. |
| DotHandleCap | Нарисуйте точечный ручей. Передайте это в функции ручей. |
| DrawAAConvexPolygon | Нарисовать выпуклый многоугольник с выравниванием, указанный в массиве точек. |
| DrawAAPolyLine | Рисовать линию с выравниванием, указанную с массивом точек и шириной. |
| DrawBezier | Нарисуйте текстурированную линию Безье через начальную и конечную точки с заданными касаниями. |
| DrawCamera | Рисует камеру внутри прямоугольника. |
| DrawDottedLine | Нарисуйте пунктирную линию от p1 до p2. |
| DrawDottedLines | Нарисуйте список сегментов пунктирной линии. |
| DrawGizmos | Нарисовать гаджеты для указанной камеры. |
| DrawLine | Чертает линию от p1 до p2. |
| DrawLines | Нарисовать список сегментов линии. |
| DrawOutline | Рисует контур вокруг указанного GameObjects в представлении Scene. |
| DrawPolyLine | Нарисуйте линию, проходящую через список точек. |
| DrawSelectionFrame | Создает квадрат в месте и повороте с указанным размером. |
| DrawSolidArc | Нарисуйте круглый сектор (кусок пирога) в пространстве 3D. |
| DrawSolidDisc | Нарисуйте плоский твёрдый диск в пространстве 3D. |
| DrawSolidRectangleWithOutline | Нарисуйте сплошной прямоугольник с контурами в пространстве 3D. |
| DrawTexture3DSDF | Рисует текстуру 3D с использованием режима отображения Поля Знакового Расстояния в пространстве 3D. |
| DrawTexture3DSlice | Рисует текстуру 3D в режиме отображения Slice в пространстве 3D. |
| DrawTexture3DVolume | Рисует текстуру 3D в режиме отображения объема в пространстве 3D. |
| DrawWireArc | Рисует дугу в пространстве 3D. |
| DrawWireCube | Нарисуйте рамку с центром и размером. |
| DrawWireDisc | Рисует контур плоского диска в пространстве 3D. |
| EndGUI | Окончание блока 2D GUI и возвращение к блоку 3D GUI. |
| FreeMoveHandle | Сделайте ручку свободного движения. |
| FreeRotateHandle | Сделайте ручку неограниченного вращения. |
| GetMainGameViewSize | Получить ширину и высоту основного вида игры. |
| Label | Создает текстовую метку для манипулятора, расположенного в пространстве 3D. |
| MakeBezierPoints | Возвращает массив точек, представляющих кривую Безье. |
| PositionHandle | Сделайте позиционную ручку. |
| RadiusHandle | Сделайте Scene ручку радиуса вида. |
| RectangleHandleCap | Нарисуйте прямоугольный ручка. Передайте это в функции ручки. |
| RotationHandle | Сделайте Scene ручку вращения вида. |
| ScaleHandle | Создайте Scene манипулятор масштаба вида. |
| ScaleSlider | Сделать направленный масштаб ползунок. |
| ScaleValueHandle | Создайте 3D handle, который масштабирует одиночный float. |
| SetCamera | Устанавливает текущую камеру так, чтобы все ручки и гаджеты рисовались с ее настройками. |
| ShouldRenderGizmos | Определяет, рисовать ли Гизмы. |
| Slider | Сделайте слайдер 3D, который движется по одной оси. |
| Slider2D | Создайте ползунок 3D, который движется вдоль плоскости, определенной двумя осями. |
| SnapToGrid | Округляет каждое Transform.position или Vector3 до ближайшего кратного EditorSnapSettings.gridSize. |
| SnapValue | Округляет значение до ближайшего кратного фиксации, если фиксация активна. Обратите внимание, что фиксация может быть только положительной. |
| SphereHandleCap | Нарисовать сферу. Передавать это в функции рукоятки. |
| TransformHandle | Создает обработчик преобразования. |
Делегаты
| делегат | Описание |
|---|---|
| CapFunction | Функция, используемая для рисования ручки e.g. Handles.RectangleCap. |
| SizeFunction | Тип делегата для получения размера ручки на основе ее текущего положения. |