Cleanup the editor assembly and provide a tool overview doc
This commit is contained in:
160
docs/editor_tools_overview.md
Normal file
160
docs/editor_tools_overview.md
Normal file
@@ -0,0 +1,160 @@
|
||||
# Apple Hills Editor Tools – Menu Items Overview
|
||||
|
||||
A single-page overview of all editor tools exposed via Unity menu items in `Assets/Editor`. Outlines what’s available from the toolbar, what each tool does, and when to use it.
|
||||
|
||||
## Table of Contents
|
||||
- [How to Read This Page](#how-to-read-this-page)
|
||||
- [AppleHills Menu](#applehills-menu)
|
||||
- [`AppleHills/Card Editor`](#applehillscard-editor)
|
||||
- [`AppleHills/Settings Editor`](#applehillssettings-editor)
|
||||
- [`AppleHills/Developer Settings Editor`](#applehillsdeveloper-settings-editor)
|
||||
- [`AppleHills/Item Prefab Creator`](#applehillsitem-prefab-creator)
|
||||
- [`AppleHills/Item Prefab Editor`](#applehillsitem-prefab-editor)
|
||||
- [`AppleHills/Scene Object Locator`](#applehillsscene-object-locator)
|
||||
- [Tools Menu](#tools-menu)
|
||||
- [`Tools/Batch Property Randomizer`](#toolsbatch-property-randomizer)
|
||||
- [`Tools/Batch Component Adder`](#toolsbatch-component-adder)
|
||||
- [`Tools/Component Transfer Tool`](#toolscomponent-transfer-tool)
|
||||
- [`Tools/Sprite Variant Generator`](#toolssprite-variant-generator)
|
||||
- [`Tools/Scene Browser`](#toolsscene-browser)
|
||||
- [`Tools/Pool Monitor`](#toolspool-monitor)
|
||||
- [`Tools/Sprite Collider Generator`](#toolssprite-collider-generator)
|
||||
- [Bootstrap Menu](#bootstrap-menu)
|
||||
- [`Bootstrap/Editor Initialise` (toggle)](#bootstrapeditor-initialise-toggle)
|
||||
- [Assets/Create Menu](#assetscreate-menu)
|
||||
- [`Assets/Create/Dialogue Graph`](#assetscreatedialogue-graph)
|
||||
- [Paths & References](#paths--references)
|
||||
|
||||
## How to Read This Page
|
||||
- Menu Path: the exact path you’ll see in Unity’s top menu. Click it to open/run the tool.
|
||||
- File: where the tool is implemented (for quick code lookup). All names/paths are shown as inline code.
|
||||
- What it does: a brief, practical summary.
|
||||
- Typical use: when to use it.
|
||||
- Notes: caveats or behavior details.
|
||||
|
||||
---
|
||||
|
||||
## AppleHills Menu
|
||||
|
||||
### `AppleHills/Card Editor`
|
||||
- File: `Assets/Editor/CardSystem/CardEditorWindow.cs`
|
||||
- What it does: Opens the card authoring window for the rarity‑based card system with live UI preview and asset management.
|
||||
- Typical use: Create/edit `CardDefinition` assets, preview via the in‑editor card UI, manage visuals using `CardVisualConfig`.
|
||||
- Notes: Auto‑creates `Assets/Data/Cards` on first run and discovers all `CardDefinition` assets there. Loads `Assets/Prefabs/UI/Cards/SIngleCardDisplayUI.prefab` for preview.
|
||||
|
||||
### `AppleHills/Settings Editor`
|
||||
- File: `Assets/Editor/Settings/SettingsEditorWindow.cs`
|
||||
- What it does: Centralized editor for project settings assets derived from `BaseSettings` (e.g., `PlayerFollowerSettings`, `InteractionSettings`, `DivingMinigameSettings`).
|
||||
- Typical use: Create/edit settings assets under `Assets/Settings/` and sync editor-time previews via `SettingsAccess`.
|
||||
- Notes: Ensure Addressables keys are correct for runtime: `Settings/<TypeName>`.
|
||||
|
||||
### `AppleHills/Developer Settings Editor`
|
||||
- File: `Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs`
|
||||
- What it does: Opens the developer-focused settings page (QA/dev toggles, diagnostics). Useful for dev-only configuration.
|
||||
- Typical use: Adjust developer options that shouldn’t ship to players but are useful during iteration.
|
||||
|
||||
### `AppleHills/Item Prefab Creator`
|
||||
- File: `Assets/Editor/Tools/PrefabCreatorWindow.cs`
|
||||
- What it does: Creates new item prefabs quickly and optionally wires data (`PickupItemData`, `PuzzleStepSO`) and components (`Interactable`, `Pickup`, `ItemSlot`, `ObjectiveStepBehaviour`).
|
||||
- Typical use: Rapidly scaffold interactable items with correct layers and components; auto‑save to chosen `Assets/Prefabs/...` and `Assets/Data/...` paths.
|
||||
- Notes: Uses helper `PrefabEditorUtility` for folder selection and ScriptableObject creation.
|
||||
|
||||
### `AppleHills/Item Prefab Editor`
|
||||
- File: `Assets/Editor/Tools/ItemPrefabEditor.cs`
|
||||
- What it does: Edits selected item prefabs/objects that include `Interactable`, toggling between `Pickup`/`ItemSlot`, and adding `ObjectiveStepBehaviour`. Allows in‑place editing/creation of linked `PickupItemData` and `PuzzleStepSO`.
|
||||
- Typical use: Convert/update existing prefab setup without leaving the inspector flow.
|
||||
|
||||
### `AppleHills/Scene Object Locator`
|
||||
- File: `Assets/Editor/Tools/SceneObjectLocatorWindow.cs`
|
||||
- What it does: Scans the current scene and lists `ObjectiveStepBehaviour` and `Pickup` objects with useful metadata (paths, data references). Provides ping shortcuts.
|
||||
- Typical use: Quickly find puzzle steps and items across the scene for debugging and content reviews.
|
||||
|
||||
---
|
||||
|
||||
## Tools Menu
|
||||
|
||||
### `Tools/Batch Property Randomizer`
|
||||
- File: `Assets/Editor/Tools/BatchRandomizerWindow.cs`
|
||||
- What it does: Batch‑randomize selected serialized properties across many objects/components, with child inclusion and path filtering.
|
||||
- Typical use: Variations pass for sprites, colors, numbers on many selected GameObjects (and their children) at once.
|
||||
- Notes: Preserves expanded paths in UI; tall window with per‑component grouping.
|
||||
|
||||
### `Tools/Batch Component Adder`
|
||||
- File: `Assets/Editor/Utilities/BatchComponentAdder.cs`
|
||||
- What it does: Adds a selected `Component` type to multiple prefabs/assets in bulk. Includes filtering for scripts/built‑ins and a searchable component list.
|
||||
- Typical use: Ensure a set of prefabs all have the same helper component.
|
||||
|
||||
### `Tools/Component Transfer Tool`
|
||||
- File: `Assets/Editor/Utilities/ComponentTransferWindow.cs`
|
||||
- What it does: Copies selected components from one GameObject (source) to another (target) with a checklist UI.
|
||||
- Typical use: Migrate components during refactors; clone setups between similar objects.
|
||||
- Notes: Guards against selecting the same source/target.
|
||||
|
||||
### `Tools/Sprite Variant Generator`
|
||||
- File: `Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs`
|
||||
- What it does: Generates multiple prefab variants by assigning different sprites to detected `SpriteRenderer` components within a source prefab.
|
||||
- Typical use: Produce skins/variants en masse for a base prefab; auto‑detects renderers and manages naming/paths.
|
||||
- Notes: Warns on very large variant counts and can auto‑choose a save folder next to the source prefab.
|
||||
|
||||
### `Tools/Scene Browser`
|
||||
- File: `Assets/Editor/Tools/SceneBrowserWindow.cs`
|
||||
- What it does: Lists all scenes under `Assets/Scenes` grouped by folders, with buttons to open/locate and toggle inclusion in Build Settings.
|
||||
- Typical use: Navigate/open scenes quickly; manage Build Settings membership from one place.
|
||||
|
||||
### `Tools/Pool Monitor`
|
||||
- File: `Assets/Editor/Utilities/PoolMonitorWindow.cs`
|
||||
- What it does: Displays runtime object pool statistics (single‑prefab and multi‑prefab pools). Supports auto‑refresh.
|
||||
- Typical use: Inspect pool usage in Play Mode to spot leaks, over‑allocation, or churn.
|
||||
- Notes: Play Mode only; shows a helpful message otherwise.
|
||||
|
||||
### `Tools/Sprite Collider Generator`
|
||||
- File: `Assets/Editor/Utilities/SpriteColliderGenerator.cs`
|
||||
- What it does: Generates polygon colliders for sprites based on their alpha, for one or many selected sprites/assets.
|
||||
- Typical use: Quickly add colliders to 2D sprites without manual tracing.
|
||||
|
||||
---
|
||||
|
||||
## Bootstrap Menu
|
||||
|
||||
### `Bootstrap/Editor Initialise` (toggle)
|
||||
- File: `Assets/Editor/Bootstrap/CustomBootEditorUtils.cs`
|
||||
- What it does: Toggles edit‑mode bootstrapping. When enabled, `CustomBoot` initialises in Edit Mode so you can preview booted systems in the Scene view.
|
||||
- Typical use: Designer/dev preview of booted singletons/services without entering Play Mode.
|
||||
- Notes: This menu item has a validator (`[MenuItem(EDITOR_INIT_MENU, true)]`) to show a checkmark when enabled. Edit‑mode caveats apply: objects are added to the current scene, de‑init occurs on scene save and when entering Play Mode.
|
||||
|
||||
---
|
||||
|
||||
## Assets/Create Menu
|
||||
|
||||
### `Assets/Create/Dialogue Graph`
|
||||
- File: `Assets/Editor/Dialogue/DialogueGraph.cs`
|
||||
- What it does: Creates a new `RuntimeDialogueGraph` asset for the dialogue system.
|
||||
- Typical use: Start a new NPC conversation graph; then open it in the dialogue editor.
|
||||
|
||||
---
|
||||
|
||||
## Paths & References
|
||||
- Bootstrap
|
||||
- `Assets/Editor/Bootstrap/CustomBootEditorUtils.cs`
|
||||
- `Assets/Editor/Bootstrap/CustomBootSettingsProvider.cs` (Project Settings provider, not a menu item)
|
||||
- `Assets/Editor/Bootstrap/CustomBootProjectSettings.cs` (settings asset class, not a menu item)
|
||||
- Card System
|
||||
- `Assets/Editor/CardSystem/CardEditorWindow.cs`
|
||||
- Dialogue
|
||||
- `Assets/Editor/Dialogue/DialogueGraph.cs`
|
||||
- Settings
|
||||
- `Assets/Editor/Settings/SettingsEditorWindow.cs`
|
||||
- `Assets/Editor/Settings/DeveloperSettingsEditorWindow.cs`
|
||||
- Tools & Utilities
|
||||
- `Assets/Editor/Tools/BatchRandomizerWindow.cs`
|
||||
- `Assets/Editor/Tools/PrefabCreatorWindow.cs`
|
||||
- `Assets/Editor/Tools/ItemPrefabEditor.cs`
|
||||
- `Assets/Editor/Tools/PrefabVariantGeneratorWindow.cs`
|
||||
- `Assets/Editor/Tools/SceneBrowserWindow.cs`
|
||||
- `Assets/Editor/Tools/SceneObjectLocatorWindow.cs`
|
||||
- `Assets/Editor/Utilities/BatchComponentAdder.cs`
|
||||
- `Assets/Editor/Utilities/ComponentTransferWindow.cs`
|
||||
- `Assets/Editor/Utilities/PoolMonitorWindow.cs`
|
||||
- `Assets/Editor/Utilities/SpriteColliderGenerator.cs`
|
||||
|
||||
If you add a new tool with `[MenuItem("...")]`, please also add it to this page to keep the overview current.
|
||||
Reference in New Issue
Block a user