コード例 #1
0
        private IEnumerator DestroyDelayed()
        {
            yield return(new WaitForSeconds(delayTime));

            particle.Stop();
            PoolsManager.GetGameObjectsPool(poolTagName).Put(gameObject);
        }
コード例 #2
0
 protected override void OnEventTrigger()
 {
     #if UNITY_EDITOR
     Debug.Log("Crystal event " + gameObject.GetInstanceID());
     #endif
     PoolsManager.GetGameObjectsPool(EngineSettings.Crystals.CrystalsPoolTagName).Put(gameObject);
 }
コード例 #3
0
 public void DestroyPlatform()
 {
     if (crystalRelated != null)
     {
         EventMonoBehaviour.TriggerObject(crystalRelated);
         crystalRelated = null;
     }
     PoolsManager.GetGameObjectsPool(EngineSettings.Platforms.PlatformsPoolTagName).Put(gameObject);
 }
コード例 #4
0
        public void GenerateCrystal()
        {
            var crystalChance = Random.Range(0, 100);

            if (crystalChance <= EngineSettings.Crystals.SpawnRandomChance)
            {
                var crystalGameObject = PoolsManager.GetGameObjectsPool(EngineSettings.Crystals.CrystalsPoolTagName).Take();
                crystalGameObject.transform.position = transform.position + centerPosition;
                crystalGameObject.transform.parent   = transform;
                crystalRelated = crystalGameObject;
            }
        }
コード例 #5
0
        private CargoEntity SpawnCargo()
        {
            var cargoObject = PoolsManager.GetGameObjectsPool(cargoList[randomCargoTypes[currentCargoIndex]].PoolName).Take();
            var cargoEntity = cargoObject.GetComponent <CargoEntity>();

            currentCargoIndex++;
            if (currentCargoIndex == cargoList.Count)
            {
                randomCargoTypes.Shuffle(random);
                currentCargoIndex = 0;
            }
            return(cargoEntity);
        }
コード例 #6
0
        public void TakeCrystal()
        {
            if (crystalRelated != null)
            {
                var particle = PoolsManager.GetGameObjectsPool(EngineSettings.Crystals.CrystalParticlesTagName).Take();
                particle.transform.position = crystalRelated.transform.position + new Vector3(0f, 0.5f, 0f);
                particle.GetComponent <Particles.Particle>().PlayParticle();

                EventMonoBehaviour.TriggerObject(crystalRelated);
                crystalRelated = null;
                EventsManager.CallEvent(Events.AddCrystal);
            }
        }
コード例 #7
0
 public void DestroyObject()
 {
     transform.rotation = Quaternion.identity;
     PoolsManager.GetGameObjectsPool(cargoList[cargoEntityType].PoolName).Put(gameObject);
 }