diff --git a/Assets/Prefabs/Enemy/ChargeEnemy.prefab b/Assets/Prefabs/Enemy/ChargeEnemy.prefab index b1196dc672c1adc02ad2d5dd3c518d071508cfa8..50ebf8118ea1ab12b47678f9cc071a826a5c14cc 100644 Binary files a/Assets/Prefabs/Enemy/ChargeEnemy.prefab and b/Assets/Prefabs/Enemy/ChargeEnemy.prefab differ diff --git a/Assets/Scripts/Enemy/BaseEnemy.cs b/Assets/Scripts/Enemy/BaseEnemy.cs index 806f3444a3d11eb359b44a8add9c5d48510d5cec..ad9a995a6fcfac9788e09d4f011ac164034aba9e 100644 --- a/Assets/Scripts/Enemy/BaseEnemy.cs +++ b/Assets/Scripts/Enemy/BaseEnemy.cs @@ -35,8 +35,6 @@ public class BaseEnemy : MonoBehaviour { { RaycastHit2D hitSide = Physics2D.Raycast(collisionPos, dir, .1f); RaycastHit2D hitDown = Physics2D.Raycast(collisionPos, -transform.up, .1f); - Debug.DrawRay(collisionPos, dir, Color.red); - Debug.DrawRay(collisionPos, -transform.up, Color.green); if (hitDown.collider != null && hitSide.collider == null) { @@ -44,4 +42,14 @@ public class BaseEnemy : MonoBehaviour { } return false; } + protected bool CheckCollisionCharge(Vector2 dir, Vector3 collisionPos) + { + RaycastHit2D hitSide = Physics2D.Raycast(collisionPos, dir, .1f); + + if (hitSide.collider == null) + { + return true; + } + return false; + } } diff --git a/Assets/Scripts/Enemy/EnemyCharge.cs b/Assets/Scripts/Enemy/EnemyCharge.cs index 2407a4415d0012bfbb2852fcb57c6201b2a5c0ad..6e0ad1684b7ea41f0208e52f1058c9ffcc2e9303 100644 --- a/Assets/Scripts/Enemy/EnemyCharge.cs +++ b/Assets/Scripts/Enemy/EnemyCharge.cs @@ -8,6 +8,7 @@ public class EnemyCharge : BaseEnemy public float ChargeSpeed; public bool Charging = false; public LayerMask lm; + public bool FallOffLedge = false; void FixedUpdate() { @@ -31,11 +32,17 @@ public class EnemyCharge : BaseEnemy } if (Charging) - { //Will move forward quickly when Charging is True - if (!CheckCollision (fwd, sr.flipX ? leftCollisionPos.position : rightCollisionPos.position)) - { - Charging = false; - return; + { //Will stop or keep going based on FallOffLedge bool + if (!FallOffLedge) { + if (!CheckCollision (fwd, sr.flipX ? leftCollisionPos.position : rightCollisionPos.position)) { + Charging = false; + return; + } + } else { + if (!CheckCollisionCharge (fwd, sr.flipX ? leftCollisionPos.position : rightCollisionPos.position)) { + Charging = false; + return; + } } Move (fwd); speed = ChargeSpeed;