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

Handles.Slider

Объявление

public static Vector3 Slider(Vector3 position, Vector3 direction);

public static Vector3 Slider(Vector3 position, Vector3 direction, float size, Handles.CapFunction capFunction, float snap);

Параметры

position Положение текущей точки в пространстве Handles.matrix.
direction Направление оси ползунка в пространстве Handles.matrix.
size Размер дескриптора в пространстве Handles.matrix. Используйте HandleUtility.GetHandleSize, если вам нужен постоянный размер экранного пространства.
snap Шаг привязки. См. раздел Handles.SnapValue.
capFunction Функция для вызова фактического рисования. По умолчанию это Handles.ArrowHandleCap, но можно использовать любую функцию с такой же сигнатурой.

Возвращает

Vector3 Новое значение, измененное взаимодействием пользователя с дескриптором. Если пользователь не перемещал дескриптор, он вернет значение позиции, переданное в функцию.

Описание

Создайте 3D-ползунок, который перемещается вдоль одной оси.

Этот метод рисует на экране 3D-манипулятор, который можно перетаскивать. Ручка ограничена перемещением вдоль вектора направления в трехмерном пространстве.

Slider handle in the Scene View.

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

using UnityEngine; [ExecuteInEditMode] public class SliderExample : MonoBehaviour { public Vector3 targetPosition { get { return m_TargetPosition; } set { m_TargetPosition = value; } } [SerializeField] private Vector3 m_TargetPosition = new Vector3(1f, 0f, 2f); public virtual void Update() { transform.LookAt(m_TargetPosition); } }

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

using UnityEditor; using UnityEngine; [CustomEditor(typeof(SliderExample)), CanEditMultipleObjects] public class SliderExampleEditor : Editor { protected virtual void OnSceneGUI() { SliderExample example = (SliderExample)target; float size = HandleUtility.GetHandleSize(example.targetPosition) * 0.5f; float snap = 0.1f; EditorGUI.BeginChangeCheck(); Vector3 newTargetPosition = Handles.Slider(example.targetPosition, Vector3.right, size, Handles.ConeHandleCap, snap); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(example, "Change Look At TargetPosition"); example.targetPosition = newTargetPosition; example.Update(); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3