using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.EventSystems; public class BaseTrigger : MonoBehaviour { public Circuit Circuit { get; private set; } private readonly List colliders = new List(); void Awake() { Circuit = GetComponentInParent(); } private void OnMouseEnter() { if (EventSystem.current) { if (!EventSystem.current.IsPointerOverGameObject()) Circuit.OnMouseEnter(); } } private void OnMouseExit() { Circuit.OnMouseExit(); } private void OnCollisionEnter(Collision collision) { if (Circuit.isDragged) { colliders.Add(collision.gameObject); if (colliders.Count == 1) Circuit.OnCollisionEnter(); } } private void OnCollisionExit(Collision collision) { if (Circuit.isDragged) { colliders.Remove(collision.gameObject); if (colliders.Count == 0) Circuit.OnCollisionExit(); } } }