Aetheria/Assets/Scripts/UI/ClickRaycaster.cs
Reinier Vens 122e929214 Various Improvements & Fixes
Map icons now have a constant size independent of zoom level
Galaxy Map now displays zone properties when clicking on a zone
Zone generator now uses half of nebula density, means smaller and more varied zones
Stations will refuse docking to entities with insufficient clearance
2021-05-12 00:15:11 +01:00

35 lines
1.1 KiB
C#

/* This Source Code Form is subject to the terms of the Mozilla Public
* License, v. 2.0. If a copy of the MPL was not distributed with this
* file, You can obtain one at https://mozilla.org/MPL/2.0/. */
using System;
using System.Collections;
using System.Collections.Generic;
using UniRx;
using UnityEngine;
using UnityEngine.EventSystems;
public class ClickRaycaster : MonoBehaviour
{
public LayerMask Layers;
public event Action<PointerEventData> OnClickMiss;
public Camera RayCamera;
private ClickCatcher _clickCatcher;
void Start()
{
_clickCatcher = GetComponent<ClickCatcher>();
_clickCatcher.OnClick.Subscribe(pointer =>
{
RaycastHit hit;
Physics.Raycast(RayCamera.ScreenPointToRay(pointer.position), out hit, 1000, Layers.value);
if (hit.collider != null)
{
var clickable = hit.collider.GetComponent<ClickableCollider>();
if (clickable != null)
clickable.Click(pointer);
}
else OnClickMiss?.Invoke(pointer);
});
}
}