using System.Collections; using System.Collections.Generic; using System.Linq; using Cysharp.Threading.Tasks; using UnityEngine; namespace BITKit.Sensors { public class MixSensor : Sensor { [SerializeReference, SubclassSelector] private ISensor[] sensors; public override IEnumerable Get()=>sensors.SelectMany(x => x.Get()); public override bool IsValid(Collider _collider) => sensors.Any(x => x.IsValid(_collider) is false) is false; public override float GetDistance() => sensors.Min(x => x.GetDistance()); public override UniTask Execute(float delta) => UniTask.WhenAll(sensors.Select(x => x.Execute(delta))); } }