FIx enemy AI
This commit is contained in:
@@ -145,9 +145,18 @@ public abstract class Character : MonoBehaviour
|
||||
|
||||
private bool CanGoDown()
|
||||
{
|
||||
var rayCastHit = Physics2D.RaycastAll(_capsuleCollider.bounds.center, Vector2.down, _capsuleCollider.size.y+0.5f, _mapLayer);
|
||||
if (rayCastHit.Any(x=>x.collider.transform.GetComponent<MapElement>().ElementSO.ElementType != MapElementType.Ladder))
|
||||
return false;
|
||||
var rayCastHit = Physics2D.RaycastAll(_capsuleCollider.bounds.center, Vector2.down, 0.5f, _mapLayer);
|
||||
var isNoladder = rayCastHit.Any(x => x.collider.transform.GetComponent<MapElement>().ElementSO.ElementType != MapElementType.Ladder);
|
||||
foreach (var hit in rayCastHit)
|
||||
{
|
||||
Debug.DrawLine(hit.point, hit.point + hit.normal.normalized * 0.2f, isNoladder? Color.blue: Color.red);
|
||||
}
|
||||
|
||||
if (isNoladder)
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -22,11 +22,11 @@ public class EnemyAI : Character
|
||||
float verticalDistance = Player.Instance.transform.position.y - transform.position.y;
|
||||
|
||||
|
||||
if (verticalDistance > 0 && isCanClimbUp && isAllowVertical)
|
||||
if (verticalDistance > 0.1f && isCanClimbUp && isAllowVertical)
|
||||
{
|
||||
vertical = VerticalMove(verticalDistance);
|
||||
}
|
||||
else if (verticalDistance < 0 && isAllowVertical && isCanGoDown)
|
||||
else if (verticalDistance < 0.1f && isAllowVertical && isCanGoDown)
|
||||
{
|
||||
vertical = VerticalMove(verticalDistance);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user