19 lines
643 B
C#
19 lines
643 B
C#
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<Transform> 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)));
|
|
}
|
|
|
|
}
|