36 lines
957 B
C#
36 lines
957 B
C#
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<Collider>();
|
|
}
|
|
|
|
|
|
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);
|
|
}
|
|
}
|
|
}
|
|
} |