ScriptableWizard Manual     Reference     Scripting  
Scripting > Editor Classes > ScriptableWizard
ScriptableWizard Class, inherits from EditorWindow

Derive from this class to create an editor wizard.

Note: This is an editor class. To use it you have to place your script in Assets/Editor inside your project folder. Editor classes are in the UnityEditor namespace so for C# scripts you need to add "using UnityEditor;" at the beginning of the script.

Editor wizards are typically opened using a menu item.

// C# example:
using UnityEditor;
using UnityEngine;
class WizardCreateLight : ScriptableWizard {
public float range = 500;
public Color color = Color.red;

[MenuItem ("GameObject/Create Light Wizard")]
static void CreateWizard () {
ScriptableWizard.DisplayWizard("Create Light", typeof (WizardCreateLight),
"Create", "Apply");
//If you don't want to use the secondary button simply leave it out:
//ScriptableWizard.DisplayWizard("Create Light", typeof(WizardCreateLight));
}

void OnWizardCreate () {
GameObject go = new GameObject ("New Light");
go.AddComponent("Light");
go.light.range = range;
go.light.color = color;
}

void OnWizardUpdate () {
helpString = "Please set the color of the light!";
}

// When the user pressed the "Apply" button OnWizardOtherButton is called.
void OnWizardOtherButton ()
{
// Simply set the color of the selected light to red.
if (Selection.activeTransform == null)
return;
if (Selection.activeTransform.light == null)
return;
Selection.activeTransform.light.color = Color.red;
}
}

Variables
helpString

Allows you to set the help text of the wizard.

errorString

Allows you to set the error text of the wizard.

isValid

Allows you to enable and disable the wizard create button, so that the user can not click it.

Messages Sent
OnDrawGizmos

Called every frame if the wizard is visible.

OnWizardUpdate

This is called when the wizard is opened or whenever the user changes something in the wizard.

OnWizardCreate

This is called when the user clicks on the Create button.

OnWizardOtherButton

Allows you to provide an action when the user clicks on the other button.

Class Functions
DisplayWizard

Creates a wizard.

Inherited members
Inherited Variables
wantsMouseMove

Does the GUI in this editor window want MouseMove events?

autoRepaintOnSceneChange

Does the window automatically repaint whenever the scene has changed?

position

The position of the window in screen space.

name

The name of the object.

hideFlags

Should the object be hidden, saved with the scene or modifyable by the user?

Inherited Functions
BeginWindows

Mark the beginning area of all popup windows.

EndWindows

Close a window group started with EditorWindow.BeginWindows

ShowNotification

Show a notification message.

RemoveNotification

Stop showing notification message.

Focus

Moves keyboard focus to this EditorWindow.

ShowUtility

Show the EditorWindow as a floating utility window.

Show

Show the EditorWindow.

Close

Close the editor window.

Repaint

Make the window repaint.

SendEvent

Sends an Event to a window.

GetInstanceID

Returns the instance id of the object.

Inherited Messages Sent
OnGUI

Implement your own GUI here.

Update

Called 100 times per second on all visible windows.

OnInspectorUpdate

OnInspectorUpdate is called at 10 frames per second to give the inspector a chance to update

OnDestroy

OnDestroy is called when the EditorWindow is closed.

OnSelectionChange

Called whenever the selection has changed.

OnFocus

Called when the window gets keyboard focus.

OnLostFocus

Called when the window loses keyboard focus.

OnHierarchyChange

Called whenever the scene hierarchy has changed.

OnProjectChange

Called whenever the project has changed.

OnEnable

This function is called when the object is loaded

OnDisable

This function is called when the scriptable object goes out of scope

Inherited Class Variables
focusedWindow

The EditorWindow which currently has keyboard focus (Read Only)

mouseOverWindow

The EditorWindow currently under the mouse cursor (Read Only)

Inherited Class Functions
GetWindow

Returns the first EditorWindow of type t which is currently on the screen.

GetWindowWithRect

Returns the first EditorWindow of type t which is currently on the screen.

CreateInstance

Creates an instance of a scriptable object with className.

operator bool

Does the object exist?

Instantiate

Clones the object original and returns the clone.

Destroy

Removes a gameobject, component or asset.

DestroyImmediate

Destroys the object obj immediately. It is strongly recommended to use Destroy instead.

FindObjectsOfType

Returns a list of all active loaded objects of Type type.

FindObjectOfType

Returns the first active loaded object of Type type.

operator ==

Compares if two objects refer to the same

operator !=

Compares if two objects refer to a different object

DontDestroyOnLoad

Makes the object target not be destroyed automatically when loading a new scene.