This commit is contained in:
CortexCore
2024-04-16 04:39:26 +08:00
parent 09037a8958
commit aacf09b2b2
28 changed files with 2571 additions and 550 deletions

View File

@@ -7,6 +7,7 @@ using Cysharp.Threading.Tasks;
using UnityEngine.Jobs;
using UnityEngine.Pool;
using UnityEngine.Profiling;
using Physics=UnityEngine.Physics;
namespace BITKit.Sensors
{
@@ -35,12 +36,12 @@ namespace BITKit.Sensors
}
private readonly DoubleBuffer<IEnumerable<Transform>> _detectedDoubleBuffer = new();
private IEnumerable<Transform> _detectedBuffer;
private IEnumerable<Transform> _detectedBuffer=Array.Empty<Transform>();
public override UniTask Execute(float delta)
{
tempHashSet.Clear();
var length = UnityEngine.Physics.OverlapSphereNonAlloc(Transform.position, radius, colliders, detectLayer);
var length = Physics.OverlapSphereNonAlloc(Transform.position, radius, colliders, detectLayer);
Profiler.BeginSample("Filter Detected Colliders");
var _newDetected = from x in colliders.Take(length) where IsValid(x) select x.transform;
Profiler.EndSample();
@@ -93,13 +94,7 @@ namespace BITKit.Sensors
Debug.DrawLine(location, position, Color.green, 1);
return true;
case 1:
if (hits[0].collider == _collider)
{
Debug.DrawLine(location, hits[0].point, Color.blue, 1);
return true;
}
break;
return hits[0].collider == _collider;
default:
var collider1 = _collider;
if (hits.Take(length).Any(Predicate))