55 lines
1.3 KiB
C#
55 lines
1.3 KiB
C#
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<Outline2>(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;
|
|
}
|
|
}
|
|
}
|
|
}
|