Class ScyllaSetupWizard
Initial project setup wizard for the Scylla Framework. Guides users through six steps
to create a ScyllaBootstrap, configuration assets, and module GameObjects.
Opened via Tools > Scylla > Setup Wizard.
Inheritance
Inherited Members
Namespace: Scylla.Core.Editor
Assembly: ScyllaCore.Editor.dll
Syntax
public sealed class ScyllaSetupWizard : ScyllaWizardWindowBase
Remarks
The wizard extends ScyllaWizardWindowBase with the TopBar layout
(six step pills). It is a fixed-width window (width defined by
ScyllaEditorConstants.WIZARD_WIDTH) with a height range of 540 to 720 px.
Every time the menu item is invoked, the session state is cleared via
ResetWizardSessionState<T>() so the wizard
always reopens at step 1.
Steps and their content:
- Welcome (0) - Introduction with an animated ScyllaLogoElement and a bullet list of what will be configured.
- Scylla Core (1) - Detects whether a ScyllaBootstrap already exists. Shows the existing bootstrap name with a "Select in Hierarchy" button, or a checkbox-driven "Create Scylla Core" option with a warning HelpBox when creation is unchecked. Next is blocked if no bootstrap exists and creation is unchecked.
- Configuration (2) - Detects an existing ScyllaCoreConfiguration. Shows the existing config with a "Create New Configuration Instead" button (which calls RefreshCurrentStepContent() to swap the view in place), or a new-configuration form with Resources path field (invalid-path warning), Logging section (enable toggle, file logging, log level), and Init Delay slider (low-delay warning).
- Modules (3) - Discovers all ScyllaModule subclasses via assembly reflection. Provides Select All / Select None / Invert buttons. Each module row has a toggle, name, description, dependency hint, and priority. Selecting a module auto-selects its dependencies via a breadth-first queue; a module required by a selected module cannot be deselected (toggle disabled).
- Review (4) - Three section boxes (Scylla Core / Configuration / Modules) showing a text summary of all choices. Clicking Next executes the setup.
- Complete (5) - Lists all created assets and GameObjects. Provides "Next Steps" bullets. Finish closes the wizard and selects the bootstrap in the Hierarchy.
All created objects and assets are registered under a single Undo group so the entire setup can be undone in one step. Assets are written via UnityEditor.SerializedObject rather than raw field reflection so Inspector bindings refresh immediately.
Methods
BuildStepContent(int, VisualElement)
Builds the content for the step at the given index.
Add children to stepRoot.
Declaration
protected override void BuildStepContent(int stepIndex, VisualElement stepRoot)
Parameters
| Type | Name | Description |
|---|---|---|
| int | stepIndex | Zero-based step index. |
| VisualElement | stepRoot | The container to add step content to. |
Overrides
DefineSteps()
Defines the wizard steps. Called once during window creation. Return an array of ScyllaWizardWindowBase.WizardStepDef instances.
Declaration
protected override ScyllaWizardWindowBase.WizardStepDef[] DefineSteps()
Returns
| Type | Description |
|---|---|
| WizardStepDef[] |
Overrides
OnStepChanged(int)
Called when the current step index changes.
Declaration
protected override void OnStepChanged(int newIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| int | newIndex | The new step index. |
Overrides
OnStepCompleted(int)
Called after validation passes when advancing from a step.
Declaration
protected override void OnStepCompleted(int stepIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| int | stepIndex | The completed step index. |
Overrides
OnWizardFinished()
Called when the wizard is finished (Finish button clicked and last step validated).
Declaration
protected override void OnWizardFinished()
Overrides
ShowWizard()
Opens the Scylla Setup Wizard. Resets session state to always start at step 1,
even if a previous wizard session left the window mid-flow. The window is a fixed
width (defined by ScyllaEditorConstants.WIZARD_WIDTH), clamped in height
between 540 and 720 px.
Declaration
public static void ShowWizard()
ValidateStep(int)
Validates the current step before advancing. Return true to allow advancing,
false to block. Default implementation always allows.
Declaration
protected override bool ValidateStep(int stepIndex)
Parameters
| Type | Name | Description |
|---|---|---|
| int | stepIndex | The step being validated. |
Returns
| Type | Description |
|---|---|
| bool |