Version: 5.5

Handles.ScaleValueHandle

Cambiar al Manual
public static float ScaleValueHandle (float value, Vector3 position, Quaternion rotation, float size, Handles.DrawCapFunction capFunc, float snap);

Parámetros

value The value the user can modify.
position The position of the handle.
rotation The rotation of the handle.
size The size of the handle.
capFunc The function to use for drawing the handle (e.g. Handles.RectangleCap).
snap The new value after the user has modified it.

Valor de retorno

float The new value modified by the user's interaction with the handle. If the user has not moved the handle, it will return the same value as you passed into the function.

Descripción

Make a single-float draggable handle.

This is used to make the center scale handle. The user can click and drag to scale a single float up and down.


Scale Value handle in the Scene view with an arrow cap as the handle.

Note: Use HandleUtility.GetHandleSize if you want the handle to always remain the same size on the screen.

// 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(); } } }

And attach this script to the Handle:

// 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); } }