From a5c7096ceadd9ce753ae3f8b049f4407ea5721f1 Mon Sep 17 00:00:00 2001 From: hesukastro Date: Fri, 9 Jan 2026 03:14:45 +0800 Subject: [PATCH] Add README.md --- README.md | 57 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 57 insertions(+) create mode 100644 README.md diff --git a/README.md b/README.md new file mode 100644 index 0000000..d51897c --- /dev/null +++ b/README.md @@ -0,0 +1,57 @@ +# Unity Match-3: VContainer Edition + +A modern Match-3 puzzle game built in Unity, focusing on clean architecture, dependency injection, and data-driven design. This project serves as a template for scalable mobile game development. + +## 🏗 Architecture & Patterns + +### Dependency Injection with VContainer +This project utilizes **VContainer** for high-performance dependency injection. By using a `LifetimeScope`, we decouple our game logic (Grid Management, Scoring, Input) from the Unity Lifecycle, making the codebase more modular and easier to test. + + +### Data-Driven Gameplay +All balancing and configuration parameters are centralized in a **ScriptableObject** called `GameVariables`. This allows designers to tweak the game feel in real-time without touching code. + +**Adjustable Parameters include:** +* Debug Mode +* Tile prefabs + * Spawnable object + * Spawnable explosion prefab animation + * Sprite + * Score value +* Grid Dimensions +* Audio SFX +* Special Tiles +* Animation speed and delays + +--- + +## 🎮 Features + +* **Grid Logic:** Efficient recursive algorithms for detecting matches and handling "gravity" (falling tiles). +* **Decoupled Systems:** UI, Sound, and Gameplay systems communicate via injected interfaces. +* **Scriptable Configuration:** Easily swap between "Easy" and "Hard" mode by swapping the `GameVariables` asset. + + + +--- + +## 🛠 Tech Stack + +* **Engine:** Unity 2022.3+ +* **DI Framework:** [VContainer](https://vcontainer.hadashikakeru.jp/) +* **UniTask:** C# (Task-based async for animations) +* **Data:** ScriptableObjects + +--- + +## 🚀 Getting Started + +### Prerequisites +* Unity Hub & Unity 2022.3 LTS or newer. +* VContainer package. +* UniTask package. + +### Installation +1. Open the project in Unity. +2. Navigate to Assets/Scenes/ and open `Scene_Submission` +3. Locate `GameVariables` asset in `Assets` to modify gameplay values. \ No newline at end of file