/// <summary> /// On init we create an object pool if needed /// </summary> /// <param name="owner"></param> protected override void CustomInitialization(MMF_Player owner) { base.CustomInitialization(owner); if (Active && CreateObjectPool && !_poolCreatedOrFound) { if (_objectPooler != null) { _objectPooler.DestroyObjectPool(); owner.ProxyDestroy(_objectPooler.gameObject); } GameObject objectPoolGo = new GameObject(); objectPoolGo.name = Owner.name + "_ObjectPooler"; _objectPooler = objectPoolGo.AddComponent <MMMiniObjectPooler>(); _objectPooler.GameObjectToPool = GameObjectToInstantiate; _objectPooler.PoolSize = ObjectPoolSize; _objectPooler.transform.SetParent(Owner.transform); _objectPooler.MutualizeWaitingPools = MutualizePools; _objectPooler.FillObjectPool(); if ((Owner != null) && (objectPoolGo.transform.parent == null)) { SceneManager.MoveGameObjectToScene(objectPoolGo, Owner.gameObject.scene); } _poolCreatedOrFound = true; } }
/// <summary> /// On init we create an object pool if needed /// </summary> /// <param name="owner"></param> protected override void CustomInitialization(GameObject owner) { base.CustomInitialization(owner); if (Active && VfxCreateObjectPool) { if (_objectPool != null) { _objectPool.DestroyObjectPool(); Destroy(_objectPool.gameObject); } GameObject objectPoolGo = new GameObject(); objectPoolGo.name = "FeedbackObjectPool"; _objectPool = objectPoolGo.AddComponent <MMMiniObjectPooler>(); _objectPool.GameObjectToPool = VfxToInstantiate; _objectPool.PoolSize = VfxObjectPoolSize; _objectPool.FillObjectPool(); } }