BITKit/Packages/Common~/Scripts/Sensor/RaySensor.cs

29 lines
883 B
C#
Raw Normal View History

2023-06-05 19:57:17 +08:00
using System.Collections;
using System.Collections.Generic;
using Cysharp.Threading.Tasks;
using UnityEngine;
namespace BITKit.Sensors
{
public class RaySensor : Sensor
{
[Header(Constant.Header.Settings)]
public float distance;
public override IEnumerable<Transform> Get() => detecteds;
public override UniTask Excute()
{
if (Physics.Raycast(transform.position, transform.forward, out var rayhit, distance, detectLayer))
{
detecteds = new Transform[]{
rayhit.transform
};
}
else
{
detecteds = new Transform[0];
}
return UniTask.CompletedTask;
}
public override bool IsValid(Collider collider) => true;
public override float GetDistance() => distance;
}
}