Example #1
0
 public virtual void OnRecycle()
 {
     TypePoolManager.RecycleElements(Options);
 }
Example #2
0
        public override void OnRecycle()
        {
            base.OnRecycle();

            TypePoolManager.RecycleElements(Sources);
        }
    private void Awake()
    {
        if (!CreateSingleton())
        {
            return;
        }
        else
        {
            if (this.poolTypeManagerDictionary == null)
            {
                this.poolTypeManagerDictionary = new Dictionary <string, TypePoolManager>();
            }

            if (this.poolTypeManagerDictionary.Count == 0)
            {
                for (int i = 0; i < this.poolPrefabList.Count; i++)
                {
                    PoolPrefab prefabToAdd = this.poolPrefabList[i];

                    if (prefabToAdd != null && prefabToAdd.prefab != null && !string.IsNullOrEmpty(prefabToAdd.type))
                    {
                        if (!this.poolTypeManagerDictionary.ContainsKey(prefabToAdd.type))
                        {
                            TypePoolManager poolManager = new TypePoolManager()
                            {
                                poolPrefabToUse = prefabToAdd,
                                typeName        = prefabToAdd.type
                            };

                            this.poolTypeManagerDictionary.Add(prefabToAdd.type, poolManager);
                            this.activePoolManagers.Add(poolManager);
                        }
                    }
                }
            }

            if (this.networkedPoolTypeManagerDictionary == null)
            {
                this.networkedPoolTypeManagerDictionary = new Dictionary <NetworkHash128, TypePoolManager>();
            }

            if (this.networkedPoolTypeManagerDictionary.Count == 0)
            {
                for (int i = 0; i < this.poolNetworkPrefabList.Count; i++)
                {
                    PoolPrefab prefabToAdd = this.poolNetworkPrefabList[i];

                    if (prefabToAdd != null && prefabToAdd.prefab != null)
                    {
                        NetworkIdentity networkIdentity = prefabToAdd.prefab.GetComponent <NetworkIdentity>();

                        if (networkIdentity != null)
                        {
                            NetworkHash128 assetId = networkIdentity.assetId;

                            if (!this.networkedPoolTypeManagerDictionary.ContainsKey(assetId))
                            {
                                TypePoolManager poolManager = new TypePoolManager()
                                {
                                    poolPrefabToUse = prefabToAdd,
                                };

                                this.networkedPoolTypeManagerDictionary.Add(assetId, poolManager);
                                this.activePoolManagers.Add(poolManager);

                                ClientScene.RegisterSpawnHandler(assetId, GetNetworkedPooledObject, ReturnNetworkedObjectToPool);
                            }
                        }
                    }
                }
            }
        }
    }