ScriptableWizard Manual     Reference     Scripting  
Scripting > Editor Classes > ScriptableWizard
ScriptableWizard 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#
// Creates a simple wizard that lets you create a Ligth GameObject
// or if the user clicks in "Apply", it will set the color of the currently
// object selected to red

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<WizardCreateLight>("Create Light", "Create", "Apply");
//If you don't want to use the secondary button simply leave it out:
//ScriptableWizard.DisplayWizard<WizardCreateLight>("Create Light", "Create");
}
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 () {
if (Selection.activeTransform == null ||
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
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.

OnDrawGizmos

Called every frame when the wizard is visible.

OnWizardOtherButton

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

Class Functions
DisplayWizard.<T>

Creates a wizard.

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

ShowTab

Focus

Moves keyboard focus to this EditorWindow.

ShowUtility

Show the EditorWindow as a floating utility window.

ShowPopup

Used for popup style windows.

Show

Show the EditorWindow.

ShowAuxWindow

Show the editor window in the auxiliary window.

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.

ToString

Returns the name of the game object.

Inherited Messages Sent
OnGUI

Implement your own editor 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

OnDestroy

This function is called when the scriptable object will be destroyed.

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.

GetWindow.<T>

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

FocusWindowIfItsOpen

Focuses the first found EditorWindow of specified type if it is open.

FocusWindowIfItsOpen.<T>

Focuses the first found EditorWindow of type T if it is open.

GetWindowWithRect

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

GetWindowWithRect.<T>

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

CreateInstance

Creates an instance of a scriptable object with className.

CreateInstance.<T>

Creates an instance of a scriptable object with T.

operator bool

Does the object exist?

Instantiate

Clones the object original and returns the clone.

Instantiate.<T>

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.