Legacy Documentation: Version 4.5.0

Script language:

  • JS
  • C#
  • Boo
Script language

Select your preferred scripting language. All code snippets will be displayed in this language.

Handles.Slider

static function Slider(position: Vector3, direction: Vector3): Vector3;
static Vector3 Slider(Vector3 position, Vector3 direction);
static def Slider(position as Vector3, direction as Vector3) as Vector3
static function Slider(position: Vector3, direction: Vector3, size: float, drawFunc: DrawCapFunction, snap: float): Vector3;
static Vector3 Slider(Vector3 position, Vector3 direction, float size, DrawCapFunction drawFunc, float snap);
static def Slider(position as Vector3, direction as Vector3, size as float, drawFunc as DrawCapFunction, snap as float) as Vector3

Parameters

positionThe position of the current point.
directionThe direction of the sliding.
size3D size the size of the handle.
drawFuncThe function to call for doing the actual drawing - by default, it's Handles.ArrowCap, but any function that has the same signature can be used.
snapThe snap value (see Handles.SnapValue).

Note: Use HandleUtility.GetHandleSize where you might want to have constant screen-sized handles.

Description

Make a 3D slider.

This will draw a 3D-draggable handle on the screen. The handle is constrained to sliding along a direction vector in 3D space.


Slider handle in the Scene View.

	// Simple script that creates a Magenta Slide Handle that 
	// points to (0,0,0) nomatter where the target GameObject is located.
	
	@CustomEditor (Slide)
	class SliderHandleJS extends Editor {
		function OnSceneGUI () {
			Handles.color = Color.magenta;
	        target.vectorPoint = Handles.Slider (target.transform.position, 
	      						Vector3.zero - target.transform.position);
	        if (GUI.changed)
	            EditorUtility.SetDirty (target);
	    }
	}

And the script attached to this Handle:

	// Usage: Place this script on the Game Object you want to use the
	// editor-created slide handle.
	
	@script ExecuteInEditMode()
	
	var vectorPoint : Vector3 = Vector3(0,0,0);
	
	function Update() {
		Debug.Log("Looking at: " + vectorPoint);
	}