Fixed movement rules

This commit is contained in:
2023-07-26 15:52:50 +00:00
parent b51381c1ac
commit e65c923810
5 changed files with 41 additions and 23 deletions
+15 -5
View File
@@ -20,18 +20,22 @@ public class EnemyAI : Character
float horizontal = 0;
float vertical = 0;
Vector2 directionToPlayer = Player.Instance.transform.position - transform.position;
Vector2 directionToPlayer = Player.Instance.transform.position - transform.position;
directionToPlayer.Normalize();
float verticalDistance = Player.Instance.transform.position.y - transform.position.y;
if (Mathf.Abs(Player.Instance.transform.position.y - transform.position.y) < 0.1f)
{
horizontal = directionToPlayer.x;
}
else if (isAllowVertical)
else if (verticalDistance>0 && isCanClimbUp && isAllowVertical)
{
float verticalDistance = Player.Instance.transform.position.y - transform.position.y;
float verticalDirection = Mathf.Sign(verticalDistance);
vertical = verticalDirection;
vertical =VerticalMove(verticalDistance);
}
else if (verticalDistance<0 && isAllowVertical)
{
vertical =VerticalMove(verticalDistance);
}
else
{
@@ -48,4 +52,10 @@ public class EnemyAI : Character
{ vertical = -1; }
base.MoveTo(horizontal, vertical);
}
private float VerticalMove(float verticalDistance)
{
float verticalDirection = Mathf.Sign(verticalDistance);
return verticalDirection;
}
}