using UnityEngine; public class CheckOutlines : MonoBehaviour { [SerializeField] private Camera cam; [SerializeField] private float rayDistance = 100f; Outline2 outline; void Start() { if (cam == null) cam = Camera.main; } void Update() { Ray ray = Camera.main.ScreenPointToRay(Input.mousePosition); if (Physics.Raycast(ray, out RaycastHit hit, rayDistance)) { var outlineTemp = hit.collider.GetComponentInChildren(true); if (outlineTemp != null) { if (outline != outlineTemp) { if (outline != null) outline.Alpha = 0; // Reset previous outline outline = outlineTemp; outline.Alpha = 1; Debug.Log("Detected object with outline: " + hit.collider.name); } } else { if (outline != null) { outline.Alpha = 0; outline = null; } } } else { // Raycast hit nothing — reset outline if (outline != null) { outline.Alpha = 0; outline = null; } } } }