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

Handles.ScaleSlider

Объявление

public static float ScaleSlider(float scale, Vector3 position, Vector3 direction, Quaternion rotation, float size, float snap);

Параметры

scale Значение, которое пользователь может изменить.
position Положение ручки в пространстве Handles.matrix.
direction Направление ручки в пространстве Handles.matrix.
rotation Вращение ручки в пространстве Handles.matrix.
size Размер дескриптора в пространстве Handles.matrix. Используйте HandleUtility.GetHandleSize, если вам нужен постоянный размер экранного пространства.
snap Шаг привязки. См. раздел Handles.SnapValue..

Возвращает

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

Описание

Создаёт ползунок шкалы направления.

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

Ручка ползунка масштабирования в представлении «Сцена».

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

using UnityEngine; [ExecuteInEditMode] public class ScaleSliderExample : MonoBehaviour { public float scale { get { return m_Scale; } set { m_Scale = value; } } [SerializeField] private float m_Scale = 1f; public virtual void Update() { transform.localScale = new Vector3(scale, 1f, 1f); } }

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

using UnityEditor; using UnityEngine; [CustomEditor(typeof(ScaleSliderExample)), CanEditMultipleObjects] public class ScaleSliderExampleEditor : Editor { public void OnSceneGUI() { ScaleSliderExample example = (ScaleSliderExample)target; float size = HandleUtility.GetHandleSize(example.transform.position) * 1f; float snap = 0.5f; EditorGUI.BeginChangeCheck(); float scale = Handles.ScaleSlider(example.scale, example.transform.position, example.transform.right, example.transform.rotation, size, snap); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Change Scale Value"); example.scale = scale; example.Update(); } } }
Вы можете отблагодарить автора, за перевод документации на русский язык. ₽ Спасибо
API скрипты 2021.3