# 🤖 AI SYSTEM INSTRUCTION: PrefabPoolManager Usage Rules ## 1. System Context - **Environment:** Unity 3D (C#) - **Target Platform:** Mobile (Android, iOS) - Requires strict optimization. - **Concept:** The project uses a centralized Object Pooling system called `PrefabPoolManager` (built on `UnityEngine.Pool.ObjectPool`). - **AI Task:** When writing scripts that involve creating or destroying GameObjects, the AI **MUST** use this manager instead of Unity's default methods. --- ## 2. Available API (Do NOT implement this, just use it) The `PrefabPoolManager` is a Singleton accessible via `PrefabPoolManager.Instance`. It provides the following methods: ```csharp // Pre-warms a pool (Optional, used during loading) public void InitPool(GameObject prefab, int defaultCapacity = 10, int maxSize = 50); // Spawns an object from the pool public GameObject Spawn(GameObject prefab, Vector3 position, Quaternion rotation); // Returns an object to the pool public void Despawn(GameObject obj);