The red box have the attached script, it record any other collider enter. Character attack suddenly fail as shown, because objectInTouch is empty in inspector. But you can see the other character is inside the red box. Why? Code (CSharp): public class HumanSensor : MonoBehaviour { [SerializeField] GameObject enterRobotText; SceneDataCenter _sceneDataCenter; public bool ableToEnterCommanderRobot = false; public GameObject interactObject = null; public List<Transform> objectInTouch = new List<Transform>(); private void Awake() { _sceneDataCenter = FindObjectOfType<SceneDataCenter>(); enterRobotText.SetActive(false); } private void OnTriggerEnter(Collider other) { if(!objectInTouch.Contains(other.transform.root)) objectInTouch.Add(other.transform.root); if (other.transform.root.GetComponent<VehicleInput>() || other.transform.root.GetComponent<RobotInput>()) { enterRobotText.SetActive(true); ableToEnterCommanderRobot = true; interactObject = other.transform.root.gameObject; } } private void OnTriggerExit(Collider other) { objectInTouch.Remove(other.transform.root); if (other.transform.root.GetComponent<VehicleInput>() || other.transform.root.GetComponent<RobotInput>()) { Debug.Log("x"); enterRobotText.SetActive(false); ableToEnterCommanderRobot = false; interactObject = null; } } public void AllTextDisable() { enterRobotText.SetActive(false); } }