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

Handles.SphereHandleCap

Объявление

public static void SphereHandleCap(int controlID, Vector3 position, Quaternion rotation, float size, EventType eventType);

Параметры

controlID Идентификатор элемента управления для дескриптора.
position Положение ручки в пространстве Handles.matrix.
rotation Вращение ручки в пространстве Handles.matrix.
eventType Тип события, на который действует дескриптор. Он обрабатывает события EventType.Layout и EventType.Repaint.
size Размер дескриптора в пространстве Handles.matrix. Используйте HandleUtility.GetHandleSize, если вам нужен постоянный размер экранного пространства.

Описание

Рисует ручку сферы. Передайте это в функции обработки.

В событии EventType.Layout вычисляет расстояние ручки до мыши и соответственно вызывает HandleUtility.AddControl.

При событии EventType.Repaint рисует форму маркера.

Крышка рукоятки сферы в представлении сцены

Добавляет следующий скрипт в папку Assets как SphereExample.cs и добавьте компонент SphereExample к объекту в сцене.

using UnityEngine; public class SphereExample : MonoBehaviour {}

Добавьте следующий скрипт в Assets/Editor как SphereExampleEditor.cs и выберите объект с компонентом SphereExample.

using UnityEditor; using UnityEngine; [CustomEditor(typeof(SphereExample))] public class SphereExampleEditor : Editor { float size = 1f; protected virtual void OnSceneGUI() { if (Event.current.type == EventType.Repaint) { Transform transform = ((SphereExample)target).transform; Handles.color = Handles.xAxisColor; Handles.SphereHandleCap( 0, transform.position + new Vector3(3f, 0f, 0f), transform.rotation * Quaternion.LookRotation(Vector3.right), size, EventType.Repaint ); Handles.color = Handles.yAxisColor; Handles.SphereHandleCap( 0, transform.position + new Vector3(0f, 3f, 0f), transform.rotation * Quaternion.LookRotation(Vector3.up), size, EventType.Repaint ); Handles.color = Handles.zAxisColor; Handles.SphereHandleCap( 0, transform.position + new Vector3(0f, 0f, 3f), transform.rotation * Quaternion.LookRotation(Vector3.forward), size, EventType.Repaint ); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3