/// <summary> /// 保存预制体 /// </summary> /// <param name="name"></param> /// <param name="obj"></param> private static void AddPrefab(string name, GameObject obj, InitPrefab initPrefab) { obj.SetActive(false); Prefab _prefab = new Prefab(); _prefab.prefab = obj; _prefab.InitPrefab = initPrefab; initPrefab(obj); prefabs.Add(name, _prefab); }
/// <summary> /// /// </summary> /// <param name="name">名字</param> /// <param name="prefab">预制体</param> /// <param name="initPrefab">预制体初始化</param> public static void AddNewObjectPool(string name, GameObject prefab, InitPrefab initPrefab) { if (prefabs.ContainsKey(name)) { return; } IRecycleObject recycleObject = prefab.GetComponent <IRecycleObject>(); if (recycleObject == null) { return; } AddPrefab(name, prefab, initPrefab); List <IRecycleObject> pool = new List <IRecycleObject>(); pool.Add(recycleObject); pools.Add(name, pool); }