//-------------------------------------------------------- // [Author]: 第二世界 // [ Date ]: Thursday, September 14, 2017 //-------------------------------------------------------- using UnityEngine; using System.Collections; using System.Collections.Generic; using UnityEngine.UI; namespace Snxxz.UI { public class HeadUpNamePool { static Dictionary pools = new Dictionary(); public static HeadUpName Require(HeadUpName.Pattern _pattern) { GameObjectPoolManager.GameObjectPool pool = null; var poolKey = (int)_pattern; if (!pools.ContainsKey(poolKey)) { var prefab = UILoader.LoadPrefab(StringUtility.Contact("HeadUpName_", _pattern)); if (prefab != null) { pool = GameObjectPoolManager.Instance.RequestPool(prefab); pools[poolKey] = pool; } } else { pool = pools[poolKey]; } if (pool != null) { var instance = pool.Request(); var headUpName= instance.GetComponent(); headUpName.enabled = true; return headUpName; } else { return null; } } public static void Recycle(HeadUpName _headUpName) { var pattern = _headUpName.pattern; GameObjectPoolManager.GameObjectPool pool; if (pools.TryGetValue((int)pattern, out pool)) { _headUpName.enabled = false; pool.Release(_headUpName.gameObject); } } public static void Clear() { foreach (var key in pools.Keys) { var pool = pools[key]; if (pool != null) { pool.Clear(); } } pools.Clear(); } } }