Fixed movement rules
This commit is contained in:
@@ -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;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user