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

Handles.Slider2D

Объявление

public static Vector3 Slider2D(int id, Vector3 handlePos, Vector3 offset, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, Handles.CapFunction capFunction, Vector2 snap, bool drawHelper = false);

public static Vector3 Slider2D(Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, Handles.CapFunction capFunction, float snap, bool drawHelper = false);

public static Vector3 Slider2D(int id, Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, Handles.CapFunction capFunction, Vector2 snap, bool drawHelper = false);

public static Vector3 Slider2D(Vector3 handlePos, Vector3 handleDir, Vector3 slideDir1, Vector3 slideDir2, float handleSize, Handles.CapFunction capFunction, Vector2 snap, bool drawHelper = false);

Параметры

id (необязательно) переопределить ControlID по умолчанию для этого экземпляра Slider2D.
handlePos Положение текущей точки в пространстве Handles.matrix.
offset (необязательно) отображает Slider2D в handlePos, но обрабатывает начало Slider2D как handlePos + смещение. Полезно для экземпляров Slider2D, которые размещаются/отрисовываются относительно другого объекта или ручки.
handleDir Направление ручки в пространстве Handles.matrix, используемое только для визуализации ручки.
slideDir1 Первая ось плоскости перемещения ползунка в пространстве Handles.matrix.
slideDir2 Вторая ось плоскости перемещения ползунка в пространстве Handles.matrix.
handleSize Размер дескриптора в пространстве Handles.matrix. Используйте HandleUtility.GetHandleSize, если вам нужен постоянный размер экранного пространства.
snap (с плавающей запятой или Vector2) Шаг привязки по обеим осям, равномерный или по осям. См. раздел Handles.SnapValue.
drawHelper (по умолчанию: false) отображать прямоугольник вокруг маркера при перетаскивании.
capFunction Функция для вызова фактического рисования.

Возвращает

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

Описание

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

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

Ручка 2D-ползунка в представлении «Сцена»

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

using UnityEngine; [ExecuteInEditMode] public class Slider2DExample : 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 как Slider2DExampleEditor.cs и выберите объект с компонентом Slider2DExample.

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