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. |
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; }