1
This commit is contained in:
@@ -9,14 +9,29 @@ namespace BITKit.Sensors
|
||||
public class RaySensor : Sensor
|
||||
{
|
||||
[Header(Constant.Header.Settings)]
|
||||
[SerializeField] private float radius = 0.16f;
|
||||
public float distance;
|
||||
public override IEnumerable<Transform> Get() => detected;
|
||||
private readonly RaycastHit[] raycasts = new RaycastHit[16];
|
||||
public override UniTask Execute()
|
||||
{
|
||||
var _transform = transform;
|
||||
var ray = new Ray(_transform.position,_transform.forward);
|
||||
var size = Physics.RaycastNonAlloc(ray, raycasts, distance, detectLayer);
|
||||
var forward = _transform.forward;
|
||||
var position = _transform.position;
|
||||
|
||||
var size = 0;
|
||||
if (radius is not 0)
|
||||
{
|
||||
size = Physics.CapsuleCastNonAlloc(position, position + forward * distance, radius, forward,
|
||||
raycasts
|
||||
, distance, detectLayer);
|
||||
}
|
||||
else
|
||||
{
|
||||
var ray = new Ray(_transform.position,_transform.forward);
|
||||
size = Physics.RaycastNonAlloc(ray, raycasts, distance, detectLayer);
|
||||
}
|
||||
|
||||
detected = raycasts
|
||||
.Take(size)
|
||||
.Select(x => x.collider)
|
||||
|
Reference in New Issue
Block a user