Version: 5.3 (switch to 5.4b)
ЯзыкEnglish
  • C#
  • JS

Язык программирования

Выберите подходящий для вас язык программирования. Все примеры кода будут представлены на выбранном языке.

Handles.ScaleValueHandle

Предложить изменения

Успех!

Благодарим вас за то, что вы помогаете нам улучшить качество документации по Unity. Однако, мы не можем принять любой перевод. Мы проверяем каждый предложенный вами вариант перевода и принимаем его только если он соответствует оригиналу.

Закрыть

Ошибка внесения изменений

По определённым причинам предложенный вами перевод не может быть принят. Пожалуйста <a>попробуйте снова</a> через пару минут. И выражаем вам свою благодарность за то, что вы уделяете время, чтобы улучшить документацию по Unity.

Закрыть

Отменить

Руководство
public static function ScaleValueHandle(value: float, position: Vector3, rotation: Quaternion, size: float, capFunc: Handles.DrawCapFunction, snap: float): float;
public static float ScaleValueHandle(float value, Vector3 position, Quaternion rotation, float size, Handles.DrawCapFunction capFunc, float snap);

Параметры

value @param scale Значение, которое пользователь может изменять.
position @param position Позиция маркера.
rotation @param rotation Вращение маркера.
size @param size Размер маркера.
capFunc Функция, использующаяся для отображения маркера, Handles.RectangleCap.
snap @param snap Новое значение, после того как пользователь изменил его.

Возврат значений

float @return Новую позицию. Если пользователь не выполнил операцию, будет возвращено то же значение, что вы передавали в позицию.

Описание

Делает "плавающий" перетаскиваемый маркер.

Важно: Используйте HandleUtility.GetHandleSize если вам нужны маркеры постоянного размера.

Используется чтобы получить центр масштаба маркера. Пользователь может кликать и перетаскивать, чтобы масштабировать поплавок вверх и вниз.


"Значение масштабирования маркера в окне Scene со стрелкой указателем".


        
// Name this script "ScaleValueEditor"
using UnityEngine;
using UnityEditor;

[CustomEditor(typeof(ScaleValue))] [CanEditMultipleObjects] public class ScaleValueEditor : Editor { public void OnSceneGUI() { ScaleValue t = (target as ScaleValue);

EditorGUI.BeginChangeCheck(); float scale = Handles.ScaleValueHandle(t.scale, Vector3.zero, Quaternion.identity,3,Handles.CircleCap,.5f); if (EditorGUI.EndChangeCheck()) { Undo.RecordObject(target, "Scale Value"); t.scale = scale; t.Update(); } } }

И скрипт, прикрепленный к данному маркеру:

no example available in JavaScript
// Name this script "ScaleValue"
using UnityEngine;
[ExecuteInEditMode]
public class ScaleValue : MonoBehaviour
{
    public float scale = 0.5f;
    public void Update()
    {
        GetComponent<Renderer>().sharedMaterial.color = Color.Lerp(Color.red, Color.green, scale);
    }
}