2023-04-03 17:02:11 +02:00
|
|
|
using UnityEngine;
|
|
|
|
|
|
|
|
public class ItemSelector : MonoBehaviour
|
|
|
|
{
|
|
|
|
public static ItemSelector instance;
|
|
|
|
|
2023-06-01 17:03:48 +02:00
|
|
|
[SerializeField] private Camera cam;
|
|
|
|
|
|
|
|
[SerializeField] private LayerMask mask;
|
|
|
|
|
|
|
|
[SerializeField] private float range = 1;
|
|
|
|
|
|
|
|
public InteractableItem Selected { get; private set; }
|
2023-04-03 17:02:11 +02:00
|
|
|
|
|
|
|
// Start is called before the first frame update
|
2023-06-01 17:03:48 +02:00
|
|
|
private void Start()
|
2023-04-03 17:02:11 +02:00
|
|
|
{
|
|
|
|
instance = this;
|
|
|
|
}
|
|
|
|
|
2023-06-01 17:03:48 +02:00
|
|
|
// Update is called once per frame
|
|
|
|
private void Update()
|
|
|
|
{
|
|
|
|
}
|
|
|
|
|
|
|
|
private void FixedUpdate()
|
2023-04-03 17:02:11 +02:00
|
|
|
{
|
2023-06-01 17:03:48 +02:00
|
|
|
var ray = cam.ScreenPointToRay(Input.mousePosition);
|
2023-04-03 17:02:11 +02:00
|
|
|
RaycastHit hit;
|
|
|
|
|
2023-06-01 17:03:48 +02:00
|
|
|
if (Physics.Raycast(ray, out hit, range, mask))
|
2023-04-03 17:02:11 +02:00
|
|
|
{
|
2023-06-01 17:03:48 +02:00
|
|
|
if (Selected != null || hit.transform.gameObject == null) Selected.Disable();
|
|
|
|
|
|
|
|
Selected = hit.transform.gameObject.GetComponent<InteractableItem>();
|
|
|
|
Selected.Enable();
|
|
|
|
print(Selected);
|
2023-04-03 17:02:11 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2023-06-01 17:03:48 +02:00
|
|
|
if (Selected != null) Selected.Disable();
|
2023-04-03 17:02:11 +02:00
|
|
|
}
|
|
|
|
}
|
2023-06-01 17:03:48 +02:00
|
|
|
}
|