# AmaDev

**Package:** `com.amanotes.amadev` v1.5.6  
**Unity:** 2020.3+  
**Namespace:** `Amanotes.Core`, `Amanotes`, `Amanotes.AmaDev`

Developer tools for Amanotes Unity projects: local build automation, symbol define management, project control panel, dev mode package switching, and prefab preset generation.

## Tools

**LocalBuild** (`Amanotes.Core.LocalBuild`)  
ScriptableObject for automated Android/iOS builds. Configures keystore, build targets, version numbers, and output folder. Create via `Assets > Create > AmaDev > Local Build Config`.

**SymbolDefine** (`Amanotes.Core.SymbolDefine`)  
Manages C# define symbols written to `Assets/csc.rsp`. Includes optional `LogV2` logger code generation with per-tag conditional logging. Create via `Assets > Create > AmaDev > Symbol Define`.

**ProjectCP** (`Amanotes`)  
Editor window for quick scene switching, one-click play-from-scene, and runtime FPS/time scale control. Open via `Window > AmaDev > Project Control Panel`.

**DevMode** (`Amanotes`)  
Switch packages between registry/git versions and local `file:` paths directly from the Project Control Panel. Supports registry, git, and embedded packages.

Key features:
- **Global Dev Mode toggle** — pinned button at the bottom batch-enables or disables all configured dev packages at once. State is saved per-project.
- **Snapshot** — remembers which packages were in dev mode so they can all be restored with one click.
- **Auto-discovery** — automatically searches known directories (current repo's `LocalPackages/` and previously used paths) for matching packages by reading `package.json`. No manual path entry needed for packages in known locations.
- DEV pill per package — toggle individual packages on/off (only active when global dev mode is ON).
- **⋯ menu** per package — change or remove the saved local path.
- Package ignore/hide, deferred resolve, and manual restore for externally-linked packages.

**PresetGenerator** (`Amanotes.AmaDev`)  
Generates editor `[MenuItem]` scripts from prefab folders. Each entry maps a source folder to a template and output script. Create via `Assets > Create > AmaDev > Preset Generator Settings`.

Key features:
- Multiple entries per asset — each with its own source folder, namespace, template, and output script.
- Per-entry "Generate Entry [n]" button and a "Generate All" button.
- Template placeholders: `{{CLASS_NAME}}`, `{{NAME_SPACE}}`, `{{PREFAB_METHODS}}`, `{{INSTANTIATE_PREFAB_METHOD}}`.
- Self-contained `InstantiatePrefab` helper — no external SDK dependency in generated code.

## Installing in your project

Add to your `Packages/manifest.json`:

```json
{
  "dependencies": {
    "com.amanotes.amadev": "1.5.6"
  },
  "scopedRegistries": [
    {
      "name": "npmjs",
      "url": "https://registry.npmjs.org/",
      "scopes": [
        "com.amanotes"
      ]
    }
  ]
}
```

Then open Unity — the Package Manager will resolve and download the package automatically.

## Documentation

- [CHANGELOG](CHANGELOG.md)
