29 lines
717 B
C#
29 lines
717 B
C#
using UnityEngine;
|
|
|
|
namespace RebootKit.Engine.Simulation.Sensors {
|
|
public class RaycastSensor : ISensor {
|
|
public LayerMask layerMask;
|
|
public float maxDistance;
|
|
public Ray ray;
|
|
|
|
public bool HasHit { get; private set; }
|
|
public RaycastHit Hit { get; private set; }
|
|
|
|
public GameObject Sense() {
|
|
HasHit = Physics.Raycast(ray, out RaycastHit hit, maxDistance, layerMask);
|
|
|
|
if (HasHit) {
|
|
Hit = hit;
|
|
return Hit.transform.gameObject;
|
|
}
|
|
|
|
Hit = default;
|
|
return null;
|
|
}
|
|
|
|
public void Clear() {
|
|
HasHit = false;
|
|
Hit = default;
|
|
}
|
|
}
|
|
} |