Add README.md

This commit is contained in:
2026-01-09 03:14:45 +08:00
parent 993cca2943
commit a5c7096cea

57
README.md Normal file
View File

@@ -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.