FIx enemy AI

This commit is contained in:
2023-08-03 12:09:24 +03:00
parent 754068bf58
commit e5f415f9d4
4 changed files with 17 additions and 8 deletions
+1 -1
View File
@@ -6496,7 +6496,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
_prefab: {fileID: 3591543287615843076, guid: 9343f4905e9dde64aa00eaf4ff433352, type: 3}
_maxCharacters: 2
_maxCharacters: 1
_spawnPoint: {fileID: 0}
--- !u!4 &1638752929
Transform:
+2 -2
View File
@@ -2998,11 +2998,11 @@ PrefabInstance:
objectReference: {fileID: 0}
- target: {fileID: 7345322822309755345, guid: 3d1aa56cd139405448c73b1385177b04, type: 3}
propertyPath: m_LocalPosition.x
value: 4.5
value: 3.5
objectReference: {fileID: 0}
- target: {fileID: 7345322822309755345, guid: 3d1aa56cd139405448c73b1385177b04, type: 3}
propertyPath: m_LocalPosition.y
value: -0.5
value: -1.5
objectReference: {fileID: 0}
- target: {fileID: 7345322822309755345, guid: 3d1aa56cd139405448c73b1385177b04, type: 3}
propertyPath: m_LocalPosition.z
+11 -2
View File
@@ -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))
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;
}
+2 -2
View File
@@ -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);
}