protected void FlipIfNeeded() { if ((player.MovementVector.x > 0 && !player.IsFacingRight) || (player.MovementVector.x < 0 && player.IsFacingRight)) { player.Flip(); } }
protected void LookAtNearestEnemy(List <GameObject> enemies) { if (enemies.Count < 1) { return; } float minDistance = DirectionAndDistanceCalculator.CalculateDistance(player.transform.Get2DPosition(), enemies[0].transform.Get2DPosition()); int nearestEnemyIndex = 0; for (int i = 1; i < enemies.Count; i++) { if (DirectionAndDistanceCalculator.CalculateDistance(player.transform.Get2DPosition(), enemies[i].transform.Get2DPosition()) < minDistance) { minDistance = DirectionAndDistanceCalculator.CalculateDistance(player.transform.Get2DPosition(), enemies[i].transform.Get2DPosition()); nearestEnemyIndex = i; } } Vector2 enemyPos = enemies[nearestEnemyIndex].transform.Get2DPosition(); if ((player.transform.Get2DPosition().IsAtLeftOf(enemyPos) && !player.IsFacingRight) || (!player.transform.Get2DPosition().IsAtLeftOf(enemyPos) && player.IsFacingRight)) { player.Flip(); } }