using System; using UnityEngine; using UnityEngine.UIElements; [RequireComponent(typeof(Collider))] public class CollectableDuck: MonoBehaviour { private Camera _camera; private Collider _collider; public CollectableDuckData CollectableDuckData { get; set; } private void Awake() { _camera = Camera.main; _collider = GetComponent(); } private void Update() { if (Input.GetMouseButtonUp(0)) { var ray = _camera.ScreenPointToRay(Input.mousePosition); RaycastHit hit;; if (Physics.Raycast(ray, out hit) && hit.collider == _collider) { if (CollectableDuckData == null) { throw new Exception("Unknown duck clicked in '" + gameObject.name + "'"); } CollectableDuckManager.Instance.DuckCollected(CollectableDuckData); } } } }