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.RotationHandle

static function RotationHandle(rotation: Quaternion, position: Vector3): Quaternion;
static Quaternion RotationHandle(Quaternion rotation, Vector3 position);
static def RotationHandle(rotation as Quaternion, position as Vector3) as Quaternion

Parameters

rotationOrientation of the handle.
positionCenter of the handle in 3D space.

Returns

Quaternion The modified rotation

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

Description

Make a Scene view rotation handle.

This will behave like the built-in rotation tool in Unity. If you have assigned something to Undo.SetSnapshotTarget, it will work fully with Undo.


Rotate the attached object from the Rotation Handle.

	//Create a rotation handle at (0,0,0) and rotate any object that has "RotateAtPoint.js"
	// attached from 0,0,0.
	
	@CustomEditor (RotateAtPoint)
	class RotationHandleJS extends Editor {
		function OnSceneGUI () {
	        target.rot = Handles.RotationHandle (target.rot, Vector3.zero);
	        if (GUI.changed)
	            EditorUtility.SetDirty (target);
	    }
	}

And the script attached to this handle:

	// RotateAtPoint.js
	// This Script has to be outside of the editor folder.
	//
	// Usage: Just Place this script on the object you want to work the handle with.
	// And control the Object's rotation from the handle that appears at 0,0,0 when 
	// This object is selected.
	
	@script ExecuteInEditMode()
	var rot : Quaternion = Quaternion.identity;
	
	function Update () {
		transform.rotation = rot;
	}