70 lines
2.1 KiB
Markdown
70 lines
2.1 KiB
Markdown
# Commander AI Lab — Unity Client
|
|
|
|
Unity front-end for Commander AI Lab. Communicates with the FastAPI backend (`lab_api.py`) via REST API.
|
|
|
|
## Requirements
|
|
|
|
| Tool | Version |
|
|
|---|---|
|
|
| Unity | 2022 LTS (6000.0+) |
|
|
| Render Pipeline | Universal Render Pipeline (URP) |
|
|
| .NET | .NET Standard 2.1 |
|
|
| Backend | Commander AI Lab FastAPI (port 8080) |
|
|
|
|
## Setup
|
|
|
|
1. Open Unity Hub
|
|
2. Click **Add** → select this `unity-client/` folder
|
|
3. Open the project in Unity 2022 LTS
|
|
4. Install required packages via Package Manager (see `Packages/manifest.json`)
|
|
5. Start the FastAPI backend: `python lab_api.py`
|
|
6. Open the `MainMenu` scene and press Play
|
|
|
|
## Folder Structure
|
|
|
|
```
|
|
unity-client/
|
|
Assets/
|
|
Scenes/ — All Unity scenes
|
|
MainMenu.unity
|
|
Collection.unity
|
|
DeckBuilder.unity
|
|
DeckGenerator.unity
|
|
Simulator.unity
|
|
Coach.unity
|
|
Scanner.unity
|
|
Training.unity
|
|
Precon.unity
|
|
Scripts/
|
|
Models/ — C# POCOs matching FastAPI response shapes
|
|
Services/ — ApiClient.cs, CardImageCache.cs
|
|
UI/ — Scene-specific controllers
|
|
Animation/ — CardAnimator.cs, BattlefieldAnimator.cs
|
|
Prefabs/
|
|
CardPrefab.prefab
|
|
DeckSlotPrefab.prefab
|
|
ChatBubble.prefab
|
|
Materials/ — URP materials + Shader Graphs
|
|
Textures/ — UI sprites, card back
|
|
Fonts/
|
|
Packages/ — Unity package manifest
|
|
ProjectSettings/ — Build settings, input system config
|
|
```
|
|
|
|
## Build Targets
|
|
|
|
| Platform | Instructions |
|
|
|---|---|
|
|
| **Windows** | File → Build Settings → PC/Mac → Windows x86_64 |
|
|
| **WebGL** | File → Build Settings → WebGL (requires Brotli compression) |
|
|
| **Android** | File → Build Settings → Android (requires Android SDK) |
|
|
| **iOS** | File → Build Settings → iOS (requires Xcode on Mac) |
|
|
|
|
## API Configuration
|
|
|
|
The default backend URL is `http://localhost:8080`. Change it from the **Settings** panel in the MainMenu scene or pass it as a WebGL URL parameter: `?server=http://your-server:8080`
|
|
|
|
## GitHub Issues
|
|
|
|
See Epic [#45](https://github.com/KoalaTrapLord/commander-ai-lab/issues/45) for full task breakdown.
|