using System.Collections; using System.Collections.Generic; using UnityEngine; public class Detection : MonoBehaviour { [SerializeField] private Entity _entityLinked; //If it's a projectile damage > 0 private int _projectileDamage = 0; void OnTriggerEnter2D(Collider2D other) { if(_projectileDamage == 0) { //Detect the enemy and inform the Ally if (other.gameObject.tag == "Opponent" && _entityLinked is Ally) { _entityLinked.IsEnemyDetected = true; _entityLinked.Enemy = other.gameObject.GetComponent(); } //Detect the enemy and inform the Opponent if (other.gameObject.tag == "Ally" && _entityLinked is Opponent) { _entityLinked.IsEnemyDetected = true; _entityLinked.Enemy = other.gameObject.GetComponent(); } }else { //Projectiles detection if(_projectileDamage > 0 && other.gameObject.GetComponent() == _entityLinked) { Debug.Log("Touchee !!"); other.gameObject.GetComponent().Hp -= _projectileDamage; } } } void OnTriggerExit2D(Collider2D other) { if(_projectileDamage == 0) { if ((other.gameObject.tag == "Opponent" && _entityLinked is Ally) || (other.gameObject.tag == "Ally" && _entityLinked is Opponent)) { _entityLinked.IsEnemyDetected = false; } } } //Getter and Setter public Entity EntityLinked { get { return _entityLinked; } set { _entityLinked = value; } } public int ProjectileDamage { get { return _projectileDamage; } set { _projectileDamage = value; } } }