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); }
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); } } } }