public bool OverlapSphere(float3 position, sfloat radius, ref NativeList <DistanceHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.OverlapSphere(ref this, position, radius, ref outHits, filter, queryInteraction);
public bool BoxCastCustom <T>(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector <ColliderCastHit> => QueryWrappers.BoxCastCustom(ref this, center, orientation, halfExtents, direction, maxDistance, ref collector, filter, queryInteraction);
public bool CapsuleCastAll(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, ref NativeList <ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.CapsuleCastAll(ref this, point1, point2, radius, direction, maxDistance, ref outHits, filter, queryInteraction);
public bool SphereCast(float3 origin, float radius, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.SphereCast(ref this, origin, radius, direction, maxDistance, out hitInfo, filter, queryInteraction);
public bool BoxCast(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.BoxCast(ref this, center, orientation, halfExtents, direction, maxDistance, out hitInfo, filter, queryInteraction);
public bool OverlapCapsuleCustom <T>(float3 point1, float3 point2, float radius, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector <DistanceHit> => QueryWrappers.OverlapCapsuleCustom(ref this, point1, point2, radius, ref collector, filter, queryInteraction);
public bool OverlapBox(float3 center, quaternion orientation, float3 halfExtents, ref NativeList <DistanceHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.OverlapBox(ref this, center, orientation, halfExtents, ref outHits, filter, queryInteraction);
public static bool OverlapBoxCustom <T, C>(ref T target, float3 center, quaternion orientation, float3 halfExtents, ref C collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable where C : struct, ICollector <DistanceHit> { Assert.IsTrue(collector.MaxFraction == sfloat.Zero); BoxCollider collider = default; BoxGeometry geometry = new BoxGeometry { BevelRadius = sfloat.Zero, Center = float3.zero, Size = halfExtents * 2, Orientation = quaternion.identity }; collider.Initialize(geometry, filter, Material.Default); ColliderDistanceInput input; unsafe { input = new ColliderDistanceInput { Collider = (Collider *)UnsafeUtility.AddressOf(ref collider), MaxDistance = sfloat.Zero, Transform = new RigidTransform { pos = center, rot = orientation } }; } if (queryInteraction == QueryInteraction.Default) { return(target.CalculateDistance(input, ref collector)); } else { unsafe { var interactionCollector = new QueryInteractionCollector <DistanceHit, C> { Collector = collector, }; bool returnValue = target.CalculateDistance(input, ref interactionCollector); collector = interactionCollector.Collector; return(returnValue); } } }
public static bool CheckBox <T>(ref T target, float3 center, quaternion orientation, float3 halfExtents, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new AnyHitCollector <DistanceHit>(sfloat.Zero); return(target.OverlapBoxCustom(center, orientation, halfExtents, ref collector, filter, queryInteraction)); }
public static bool OverlapCapsuleCustom <T, C>(ref T target, float3 point1, float3 point2, sfloat radius, ref C collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable where C : struct, ICollector <DistanceHit> { Assert.IsTrue(collector.MaxFraction == sfloat.Zero); CapsuleCollider collider = default; float3 center = (point1 + point2) / 2; CapsuleGeometry geometry = new CapsuleGeometry { Radius = radius, Vertex0 = point1 - center, Vertex1 = point2 - center }; collider.Initialize(geometry, filter, Material.Default); ColliderDistanceInput input; unsafe { input = new ColliderDistanceInput { Collider = (Collider *)UnsafeUtility.AddressOf(ref collider), MaxDistance = sfloat.Zero, Transform = new RigidTransform { pos = center, rot = quaternion.identity } }; } if (queryInteraction == QueryInteraction.Default) { return(target.CalculateDistance(input, ref collector)); } else { unsafe { var interactionCollector = new QueryInteractionCollector <DistanceHit, C> { Collector = collector, }; bool returnValue = target.CalculateDistance(input, ref interactionCollector); collector = interactionCollector.Collector; return(returnValue); } } }
public static bool CheckCapsule <T>(ref T target, float3 point1, float3 point2, sfloat radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new AnyHitCollector <DistanceHit>(sfloat.Zero); return(target.OverlapCapsuleCustom(point1, point2, radius, ref collector, filter, queryInteraction)); }
public static bool CheckSphere <T>(ref T target, float3 position, sfloat radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new AnyHitCollector <DistanceHit>(radius); return(target.OverlapSphereCustom(position, radius, ref collector, filter, queryInteraction)); }
public static bool OverlapSphereCustom <T, C>(ref T target, float3 position, sfloat radius, ref C collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable where C : struct, ICollector <DistanceHit> { PointDistanceInput input = new PointDistanceInput { Filter = filter, MaxDistance = radius, Position = position }; if (queryInteraction == QueryInteraction.Default) { return(target.CalculateDistance(input, ref collector)); } else { unsafe { var interactionCollector = new QueryInteractionCollector <DistanceHit, C> { Collector = collector }; bool returnValue = target.CalculateDistance(input, ref interactionCollector); collector = interactionCollector.Collector; return(returnValue); } } }
public bool SphereCastCustom <T>(float3 origin, sfloat radius, float3 direction, sfloat maxDistance, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector <ColliderCastHit> => QueryWrappers.SphereCastCustom(ref this, origin, radius, direction, maxDistance, ref collector, filter, queryInteraction);
public bool CheckCapsule(float3 point1, float3 point2, float radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.CheckCapsule(ref this, point1, point2, radius, filter, queryInteraction);
public static bool SphereCastAll <T>(ref T target, float3 origin, sfloat radius, float3 direction, sfloat maxDistance, ref NativeList <ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new AllHitsCollector <ColliderCastHit>(sfloat.One, ref outHits); return(target.SphereCastCustom(origin, radius, direction, maxDistance, ref collector, filter, queryInteraction)); }
public bool OverlapCapsule(float3 point1, float3 point2, float radius, ref NativeList <DistanceHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.OverlapCapsule(ref this, point1, point2, radius, ref outHits, filter, queryInteraction);
public static bool SphereCast <T>(ref T target, float3 origin, sfloat radius, float3 direction, sfloat maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new ClosestHitCollector <ColliderCastHit>(sfloat.One); bool hasHit = target.SphereCastCustom(origin, radius, direction, maxDistance, ref collector, filter, queryInteraction); hitInfo = collector.ClosestHit; return(hasHit); }
public bool CheckBox(float3 center, quaternion orientation, float3 halfExtents, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.CheckBox(ref this, center, orientation, halfExtents, filter, queryInteraction);
public static bool BoxCastCustom <T, C>(ref T target, float3 center, quaternion orientation, float3 halfExtents, float3 direction, sfloat maxDistance, ref C collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable where C : struct, ICollector <ColliderCastHit> { BoxCollider collider = default; BoxGeometry boxGeometry = new BoxGeometry { BevelRadius = sfloat.Zero, Center = 0, Orientation = quaternion.identity, Size = halfExtents * 2 }; collider.Initialize(boxGeometry, filter, Material.Default); ColliderCastInput input; unsafe { input = new ColliderCastInput { Collider = (Collider *)UnsafeUtility.AddressOf(ref collider), Orientation = orientation, Start = center, End = center + direction * maxDistance }; } if (queryInteraction == QueryInteraction.Default) { return(target.CastCollider(input, ref collector)); } else { unsafe { var interactionCollector = new QueryInteractionCollector <ColliderCastHit, C> { Collector = collector }; bool returnValue = target.CastCollider(input, ref interactionCollector); collector = interactionCollector.Collector; return(returnValue); } } }
public bool OverlapBoxCustom <T>(float3 center, quaternion orientation, float3 halfExtents, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector <DistanceHit> => QueryWrappers.OverlapBoxCustom(ref this, center, orientation, halfExtents, ref collector, filter, queryInteraction);
public static bool BoxCast <T>(ref T target, float3 center, quaternion orientation, float3 halfExtents, float3 direction, sfloat maxDistance, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new AnyHitCollector <ColliderCastHit>(sfloat.One); return(target.BoxCastCustom(center, orientation, halfExtents, direction, maxDistance, ref collector, filter, queryInteraction)); }
public bool SphereCastAll(float3 origin, float radius, float3 direction, float maxDistance, ref NativeList <ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.SphereCastAll(ref this, origin, radius, direction, maxDistance, ref outHits, filter, queryInteraction);
public static bool CapsuleCastCustom <T, C>(ref T target, float3 point1, float3 point2, sfloat radius, float3 direction, sfloat maxDistance, ref C collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable where C : struct, ICollector <ColliderCastHit> { CapsuleCollider collider = default; float3 center = (point1 + point2) / 2; CapsuleGeometry geometry = new CapsuleGeometry { Radius = radius, Vertex0 = point1 - center, Vertex1 = point2 - center }; collider.Initialize(geometry, filter, Material.Default); ColliderCastInput input; unsafe { input = new ColliderCastInput { Collider = (Collider *)UnsafeUtility.AddressOf(ref collider), Orientation = quaternion.identity, Start = center, End = center + direction * maxDistance }; } if (queryInteraction == QueryInteraction.Default) { return(target.CastCollider(input, ref collector)); } else { unsafe { var interactionCollector = new QueryInteractionCollector <ColliderCastHit, C> { Collector = collector }; bool returnValue = target.CastCollider(input, ref interactionCollector); collector = interactionCollector.Collector; return(returnValue); } } }
public bool BoxCastAll(float3 center, quaternion orientation, float3 halfExtents, float3 direction, float maxDistance, ref NativeList <ColliderCastHit> outHits, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.BoxCastAll(ref this, center, orientation, halfExtents, direction, maxDistance, ref outHits, filter, queryInteraction);
public static bool CapsuleCast <T>(ref T target, float3 point1, float3 point2, sfloat radius, float3 direction, sfloat maxDistance, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new AnyHitCollector <ColliderCastHit>(sfloat.One); return(target.CapsuleCastCustom(point1, point2, radius, direction, maxDistance, ref collector, filter, queryInteraction)); }
public bool CapsuleCast(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.CapsuleCast(ref this, point1, point2, radius, direction, maxDistance, out hitInfo, filter, queryInteraction);
// Interfaces that represent queries that exist in the GameObjects world. public bool CheckSphere(float3 position, float radius, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) => QueryWrappers.CheckSphere(ref this, position, radius, filter, queryInteraction);
public bool CapsuleCastCustom <T>(float3 point1, float3 point2, float radius, float3 direction, float maxDistance, ref T collector, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollector <ColliderCastHit> => QueryWrappers.CapsuleCastCustom(ref this, point1, point2, radius, direction, maxDistance, ref collector, filter, queryInteraction);
public static bool CapsuleCast <T>(ref T target, float3 point1, float3 point2, float radius, float3 direction, float maxDistance, out ColliderCastHit hitInfo, CollisionFilter filter, QueryInteraction queryInteraction = QueryInteraction.Default) where T : struct, ICollidable { var collector = new ClosestHitCollector <ColliderCastHit>(1.0f); bool hasHit = target.CapsuleCastCustom(point1, point2, radius, direction, maxDistance, ref collector, filter, queryInteraction); hitInfo = collector.ClosestHit; return(hasHit); }