Ejemplo n.º 1
0
        public override bool ShouldReturn(Transform sceneObject)
        {
            var shouldReturn = false;

            if (_shipCollisionChecker.IsCollision(sceneObject))
            {
                shouldReturn = true;
            }
            else
            {
                var vec = _camera.WorldToViewportPoint(sceneObject.position);
                if (vec.x < 0 || vec.x > 1 || vec.y < 0 || vec.y > 1)
                {
                    shouldReturn = true;
                }
            }

            return(shouldReturn);
        }
Ejemplo n.º 2
0
 public void Execute(float deltaTime)
 {
     for (int i = 0; i < _enemies.Count; i++)
     {
         if (_enemies[i].SceneEnemy.gameObject.activeSelf)
         {
             if (_transformReturnChecker.ShouldReturn(_enemies[i].SceneEnemy))
             {
                 _enemies[i].OnAction(new EnemyEventInfo(_ship.ShipTransform, false));
                 OnReturnToPool(_enemies[i]);
             }
             else if (_shipCollisionChecker.IsCollision(_enemies[i].SceneEnemy))
             {
                 _enemies[i].OnAction(new EnemyEventInfo(_ship.ShipTransform, true));
                 OnReturnToPool(_enemies[i]);
             }
             else
             {
                 _enemies[i].Execute(deltaTime);
             }
         }
     }
 }