1
This commit is contained in:
@@ -28,20 +28,21 @@ namespace BITKit.Sensors
|
||||
[Header(Constant.Header.InternalVariables)]
|
||||
// ReSharper disable once FieldCanBeMadeReadOnly.Local
|
||||
private List<Collider> detected = new();
|
||||
|
||||
private readonly Queue<Collider> triggerEnterQueue=new();
|
||||
private readonly Queue<Collider> triggerExitQueue=new();
|
||||
|
||||
private readonly Queue<Collider> triggerEnterQueue = new();
|
||||
private readonly Queue<Collider> triggerExitQueue = new();
|
||||
private bool diagnosisNextFrame;
|
||||
|
||||
|
||||
private void OnTriggerEnter(Collider _collider)
|
||||
{
|
||||
triggerEnterQueue.Enqueue(_collider);
|
||||
if(immediately)Rebuild();
|
||||
if (immediately) Rebuild();
|
||||
}
|
||||
|
||||
private void OnTriggerExit(Collider _collider)
|
||||
{
|
||||
triggerExitQueue.Enqueue(_collider);
|
||||
if(immediately)Rebuild();
|
||||
if (immediately) Rebuild();
|
||||
}
|
||||
|
||||
private void OnCollisionEnter(Collision collision)
|
||||
@@ -63,24 +64,17 @@ namespace BITKit.Sensors
|
||||
|
||||
public IEnumerable<Transform> Get()
|
||||
{
|
||||
if(BITAppForUnity.IsPlaying is false)return ArraySegment<Transform>.Empty;
|
||||
try
|
||||
{
|
||||
return detected.Select(x => x.transform).ToArray();
|
||||
return detected.Select(x => x.transform).ToArray();
|
||||
}
|
||||
catch (MissingReferenceException)
|
||||
{
|
||||
List<Transform> list = new();
|
||||
foreach (var x in detected)
|
||||
{
|
||||
try
|
||||
{
|
||||
list.Add(x.transform);
|
||||
}
|
||||
catch (MissingReferenceException){}
|
||||
}
|
||||
return list.ToArray();
|
||||
detected = detected.Where(x => x).ToList();
|
||||
}
|
||||
}
|
||||
return detected.Select(x => x.transform).ToArray();
|
||||
}
|
||||
|
||||
//public bool IsValid(Collider _collider) => ignores.Contains(_collider.gameObject) is false;
|
||||
public bool IsValid(Collider _collider)
|
||||
@@ -101,10 +95,8 @@ namespace BITKit.Sensors
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
|
||||
public UniTask Execute()
|
||||
{
|
||||
throw new NotImplementedException();
|
||||
}
|
||||
public UniTask Execute()=>
|
||||
UniTask.CompletedTask;
|
||||
|
||||
private void Update()
|
||||
{
|
||||
@@ -177,16 +169,17 @@ namespace BITKit.Sensors
|
||||
protected override void OnUpdate()
|
||||
{
|
||||
if (!agent || detectedContainer is null) return;
|
||||
if (BITAppForUnity.IsPlaying is false) return;
|
||||
detectedContainer.Clear();
|
||||
foreach (var x in agent.Get())
|
||||
foreach (var x in agent.detected)
|
||||
{
|
||||
|
||||
ObjectField objectField = new()
|
||||
{
|
||||
objectType = x.GetType(),
|
||||
value = x,
|
||||
};
|
||||
objectField.SetEnabled(false);
|
||||
objectField.style.opacity = 1;
|
||||
detectedContainer.Add(objectField);
|
||||
}
|
||||
}
|
||||
|
Reference in New Issue
Block a user