public static ObjectPoolTag Apply(GameObject go, int id) { ObjectPoolTag tag = Get(go); if (!tag) { tag = go.AddComponent <ObjectPoolTag>(); } tag.poolId = id; return(tag); }
/// <summary> /// Get/create pool on specified game object /// </summary> /// <param name="go"></param> /// <returns></returns> private static Pool GetPool(GameObject go) { if (!Exists) { return(null); } int poolId = ObjectPoolTag.GetPoolId(go); if (poolId == 0) { poolId = go.GetInstanceID(); } if (!Instance.pools.ContainsKey(poolId)) { Instance.pools[poolId] = Pool.Create(go.name + "[#" + poolId + "]", Instance.transform); } return(Instance.pools[poolId]); }
public static int GetPoolId(GameObject go) { ObjectPoolTag tag = Get(go); return(tag ? tag.poolId : 0); }