# Repository Guidelines ## Project Structure & Module Organization - `Assets/` contains all Unity assets and code. Game-specific content lives under `Assets/GameMain/`. - `Assets/GameMain/Scripts/` holds gameplay code organized by domain (`Procedure/`, `Entity/`, `UI/`, `Scene/`, `Sound/`, `Utility/`). - `Assets/GameMain/Scenes/` stores Unity scenes (start from `Assets/Launcher.unity`). - `Assets/GameMain/Configs/` and `Assets/GameMain/DataTables/` store runtime configuration and data tables. - `StreamingAssets/` is for runtime-loaded files that must be preserved on build. - `docs/` contains design notes (see `docs/GameDesign.md`). - `Êý¾Ý±í/` is a top-level data table workspace; keep it in sync with `Assets/GameMain/DataTables/` when exporting. ## Build, Test, and Development Commands - Open the project with Unity Hub and load `GeometryTD` as a Unity project. - Play locally via the Unity Editor Play button (no custom CLI runner is defined in this repo). - Build via Unity: `File > Build Settings...` then choose target and build. - IDE support: open `GeometryTD.sln` or `Assembly-CSharp.csproj` for C# navigation and tooling. ## Coding Style & Naming Conventions - C# uses 4-space indentation and Allman braces (see `Assets/GameMain/Scripts/Procedure/ProcedureLaunch.cs`). - Types, methods, and public members use `PascalCase`; locals and parameters use `camelCase`. - Namespaces follow `GeometryTD.*` by feature area (example: `GeometryTD.Procedure`). - Keep Unity `.meta` files with their assets; do not delete or regenerate them manually. ## Testing Guidelines - No project-specific tests are present yet. Unity¡¯s Test Runner is available if tests are added. - If you add tests, place them under `Assets/` with `Editor` or `Runtime` assembly definition files and use `*Tests.cs` naming. ## Commit & Pull Request Guidelines - This repository does not include Git history in the workspace, so no commit convention can be inferred. - Use clear, scoped commit messages (example: `Add tower targeting component`), and include a brief PR description plus screenshots for visual changes. ## Configuration Tips - Project settings live in `ProjectSettings/` and `Packages/`; review diffs carefully when they change. - Avoid committing `Library/`, `Temp/`, or `Logs/` outputs; they are generated by Unity.