From 23ecdd6ab4c93636169a37aa50ff24139ad0afce Mon Sep 17 00:00:00 2001 From: Adam Hamid Salah Salah Date: Wed, 28 May 2025 19:16:04 -0400 Subject: [PATCH] Added a OnTriggerExit2D to stop attack when entity not detected --- Assets/Scripts/Detection.cs | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/Assets/Scripts/Detection.cs b/Assets/Scripts/Detection.cs index 0dc117c..0225fb3 100644 --- a/Assets/Scripts/Detection.cs +++ b/Assets/Scripts/Detection.cs @@ -24,7 +24,7 @@ public class Detection : MonoBehaviour } // Looped detection every 'delay' amount - private IEnumerator C_DetectCoroutine() + private IEnumerator C_DetectCoroutine() { // Can happen if unit dies if (_entityLinked == null) yield break; @@ -66,12 +66,12 @@ public class Detection : MonoBehaviour } } - private void OnTriggerStay2D(Collider2D other) + private void OnTriggerStay2D(Collider2D other) { - if(_entityLinked != null && _projectileDamage == 0) + if (_entityLinked != null && _projectileDamage == 0) { GameObject detected = other.gameObject; - string tagToCheck = + string tagToCheck = (_entityLinked.gameObject.tag == "Ally") ? "Opponent" : "Ally"; if (detected.tag == tagToCheck) @@ -82,7 +82,25 @@ public class Detection : MonoBehaviour detectedEntities.Add(entity); } } - } + } + } + + private void OnTriggerExit2D(Collider2D other) + { + if (_entityLinked != null) + { + GameObject detected = other.gameObject; + string tagToCheck = + (_entityLinked.gameObject.tag == "Ally") ? "Opponent" : "Ally"; + if (detected.tag == tagToCheck) + { + Entity entity = other.GetComponent(); + if (detectedEntities.Contains(entity)) + { + detectedEntities.Remove(entity); + } + } + } } public Entity GetClosest()