123456789101112131415161718192021222324252627282930313233343536373839 |
- namespace Rokid.UXR.Interaction
- {
- using UnityEngine;
- public static partial class Collisions
- {
-
-
-
-
-
-
-
-
- public static bool IsCapsuleWithinColliderApprox(Vector3 p0, Vector3 p1, float radius, Collider collider)
- {
- int divisions = Mathf.CeilToInt((p1 - p0).magnitude / radius) * 2;
- if (divisions == 0)
- {
- return IsSphereWithinCollider(p0, radius, collider);
- }
- float tStep = 1f / divisions;
- for (int i = 0; i <= divisions; i++)
- {
- Vector3 point = Vector3.Lerp(p0, p1, tStep * i);
- if (IsSphereWithinCollider(point, radius, collider))
- {
- return true;
- }
- }
- return false;
- }
- }
- }
|