Legacy Documentation: Version 4.6(go to latest)
Language: English
  • C#
  • JS
  • Boo

Script language

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

Handles.Disc

public static function Disc(rotation: Quaternion, position: Vector3, axis: Vector3, size: float, cutoffPlane: bool, snap: float): Quaternion;

Parameters

rotation The rotation of the disc.
position The center of the disc.
axis The axis to rotate around.
size The size of the disc in world space See Also:HandleUtility.GetHandleSize.
cutoffPlane If true, only the front-facing half of the circle is draw / draggable. This is useful when you have many overlapping rotation axes (like in the default rotate tool) to avoid clutter.
snap The new value after the user has modified it.

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

Description

Make a 3D disc that can be dragged with the mouse.


Disc Handle on the Scene View.

	// Create a handle to rotate an object over 45 degrees on X and Y axis
	
	@CustomEditor (DiscValueModifier)
	class DiscHandle extends Editor {
		function OnSceneGUI () {
	        target.rot = 
	        	Handles.Disc(target.rot,
	        			target.transform.position,
	        			Vector3(1,1,0),
	        			5,
	        			false,
	        			1);
	        							
	        if (GUI.changed)
	            EditorUtility.SetDirty (target);
	    }
	}

And the script attached to this Handle:

	// Usage: Place this script on the Game Object you want to modify
	// the handle's rot with the disc
	
	@script ExecuteInEditMode()
	
	var rot : Quaternion = Quaternion.identity;
	
	function Update() {
		transform.rotation = rot;
	}