Пример #1
0
 public virtual void Update()
 {
     for (int i = 0; i < delayedDespawns.Length; i++)
     {
         DelayedDespawn delayedDespawn = delayedDespawns[i];
         delayedDespawn.timeRemaining -= Time.deltaTime;
         if (delayedDespawn.timeRemaining < 0)
         {
             Despawn(delayedDespawn.prefabIndex, delayedDespawn.go, delayedDespawn.trs);
             delayedDespawns = delayedDespawns.RemoveAt(i);
             i--;
             if (delayedDespawns.Length == 0 && rangedDespawns.Length == 0)
             {
                 enabled = false;
             }
         }
     }
     for (int i = 0; i < rangedDespawns.Length; i++)
     {
         RangedDespawn rangedDespawn = rangedDespawns[i];
         rangedDespawn.range      -= Vector2.Distance(rangedDespawn.trs.localPosition, rangedDespawn.previousPos);
         rangedDespawn.previousPos = rangedDespawn.trs.localPosition;
         if (rangedDespawn.range < 0)
         {
             Despawn(rangedDespawn.prefabIndex, rangedDespawn.go, rangedDespawn.trs);
             rangedDespawns = rangedDespawns.Remove(rangedDespawn);
             i--;
             if (rangedDespawns.Length == 0 && delayedDespawns.Length == 0)
             {
                 enabled = false;
             }
         }
     }
 }
Пример #2
0
        public virtual DelayedDespawn DelayDespawn(int prefabIndex, GameObject clone, Transform trs, float delay)
        {
            DelayedDespawn delayedDespawn = new DelayedDespawn(delay);

            delayedDespawn.go  = clone;
            delayedDespawn.trs = trs;
            // delayedDespawn.prefab = spawnEntries[prefabIndex].prefab;
            delayedDespawn.prefabIndex = prefabIndex;
            delayedDespawns            = delayedDespawns.Add(delayedDespawn);
            enabled = true;
            return(delayedDespawn);
        }
Пример #3
0
        public virtual void CancelDelayedDespawn(DelayedDespawn delayedDespawn)
        {
            int indexOfDelayedDespawn = delayedDespawns.IndexOf(delayedDespawn);

            if (indexOfDelayedDespawn != -1)
            {
                delayedDespawns = delayedDespawns.RemoveAt(indexOfDelayedDespawn);
                if (delayedDespawns.Length == 0 && rangedDespawns.Length == 0)
                {
                    enabled = false;
                }
            }
        }
Пример #4
0
 public virtual void DoUpdate()
 {
     for (int i = 0; i < delayedDespawns.Count; i++)
     {
         DelayedDespawn delayedDespawn = delayedDespawns[i];
         delayedDespawn.timeRemaining -= Time.deltaTime;
         if (delayedDespawn.timeRemaining < 0)
         {
             delayedDespawns.RemoveAt(i);
             Despawn(delayedDespawn.prefabIndex, delayedDespawn.go, delayedDespawn.trs);
             // Destroy(delayedDespawn.go);
             i--;
             if (delayedDespawns.Count == 0 && rangedDespawns.Count == 0)
             {
                 enabled = false;
             }
         }
         else
         {
             delayedDespawns[i] = delayedDespawn;
         }
     }
     for (int i = 0; i < rangedDespawns.Count; i++)
     {
         RangedDespawn rangedDespawn = rangedDespawns[i];
         rangedDespawn.range      -= Vector3.Distance(rangedDespawn.trs.position, rangedDespawn.previousPos);
         rangedDespawn.previousPos = rangedDespawn.trs.position;
         if (rangedDespawn.range < 0)
         {
             rangedDespawns.RemoveAt(i);
             Despawn(rangedDespawn.prefabIndex, rangedDespawn.go, rangedDespawn.trs);
             // Destroy(rangedDespawn.go);
             i--;
             if (rangedDespawns.Count == 0 && delayedDespawns.Count == 0)
             {
                 enabled = false;
             }
         }
         else
         {
             rangedDespawns[i] = rangedDespawn;
         }
     }
 }