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. |
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.
Make a single-float draggable handle.
Note: Use HandleUtility.GetHandleSize where you might want to have constant screen-sized handles.
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.
#pragma strict // Name this script "ScaleValueEditor" @CustomEditor(ScaleValue) @CanEditMultipleObjects public class ScaleValueEditor extends Editor { public function OnSceneGUI() { var t: ScaleValue = (target as ScaleValue); EditorGUI.BeginChangeCheck(); var scale: float = 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(); } } }
// 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 the script attached to this Handle:
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); } }