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)
|
||||
@@ -177,6 +171,7 @@ 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())
|
||||
{
|
||||
|
Reference in New Issue
Block a user