This repository has been archived on 2023-09-13. You can view files and clone it, but cannot push or open issues or pull requests.
station_obscurum_unity/Assets/Scripts/Interactable/ItemSelector.cs

46 lines
1.1 KiB
C#
Raw Normal View History

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