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 Get() => detecteds; public override UniTask Execute() { 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; } }