private void RecordCylinderCollision ( Vector3 localMoverPosition, Vector3 localNormal, float localMoverRadius, SpringBone.CollisionStatus collisionStatus ) { if (!enabled) { return; } if (colliderDebug == null) { colliderDebug = new SpringColliderDebug(); } var originToContactPoint = radius * localNormal; var localContactPoint = new Vector3(originToContactPoint.x, localMoverPosition.y, originToContactPoint.z); var worldContactPoint = transform.TransformPoint(localContactPoint); var worldNormal = transform.TransformDirection(localNormal).normalized; var worldRadius = transform.TransformDirection(localMoverRadius, 0f, 0f).magnitude; colliderDebug.RecordCollision( worldContactPoint, worldNormal, worldRadius, collisionStatus); }
private void RecordCollision ( Vector3 localMoverPosition, float worldMoverRadius, SpringBone.CollisionStatus collisionStatus ) { var localNormal = (localMoverPosition).normalized; var localContactPoint = localNormal * radius; var worldNormal = transform.TransformDirection(localNormal).normalized; var worldContactPoint = transform.TransformPoint(localContactPoint); colliderDebug.RecordCollision(worldContactPoint, worldNormal, worldMoverRadius, collisionStatus); }
private void RecordCollision ( Vector3 tailPosition, float tailRadius, SpringBone.CollisionStatus collisionStatus ) { var planeNormal = GetPlaneNormal(); var planeOrigin = transform.position; var planeToCollision = tailPosition - planeOrigin; var normalProjection = Vector3.Dot(planeToCollision, planeNormal) * planeNormal; var projectedCollisionPoint = tailPosition - normalProjection; colliderDebug.RecordCollision( projectedCollisionPoint, planeNormal, tailRadius, collisionStatus); }
public void RecordCollision ( Vector3 position, Vector3 normal, float radius, SpringBone.CollisionStatus collisionStatus ) { var newCollision = new Collision { position = position, normal = normal, radius = radius, collisionStatus = collisionStatus }; collisions.Add(newCollision); }
public void RecordCollision ( Vector3 position, Vector3 normal, float radius, SpringBone.CollisionStatus collisionStatus ) { Profiler.BeginSample("SpringColliderDebugger.RecordCollision"); var newCollision = new Collision { position = position, normal = normal, radius = radius, collisionStatus = collisionStatus }; collisions.Add(newCollision); Profiler.EndSample(); }
private void RecordCollision ( Vector3 localMoverPosition, float worldMoverRadius, SpringBone.CollisionStatus collisionStatus ) { if (!enabled) { return; } if (m_colliderDebugger == null) { m_colliderDebugger = new SpringColliderDebugger(); } var localNormal = (localMoverPosition).normalized; var localContactPoint = localNormal * radius; var worldNormal = transform.TransformDirection(localNormal).normalized; var worldContactPoint = transform.TransformPoint(localContactPoint); m_colliderDebugger.RecordCollision(worldContactPoint, worldNormal, worldMoverRadius, collisionStatus); }
private void RecordSphereCollision ( Vector3 localSphereOrigin, Vector3 localMoverPosition, float worldMoverRadius, SpringBone.CollisionStatus collisionStatus ) { if (!enabled) { return; } if (colliderDebug == null) { colliderDebug = new SpringColliderDebug(); } var localNormal = (localMoverPosition - localSphereOrigin).normalized; var localContactPoint = localSphereOrigin + localNormal * radius; var worldNormal = transform.TransformDirection(localNormal).normalized; var worldContactPoint = transform.TransformPoint(localContactPoint); colliderDebug.RecordCollision(worldContactPoint, worldNormal, worldMoverRadius, collisionStatus); }
private void RecordCollision ( Vector3 tailPosition, float tailRadius, SpringBone.CollisionStatus collisionStatus ) { if (!enabled) { return; } if (m_colliderDebugger == null) { m_colliderDebugger = new SpringColliderDebugger(); } var planeNormal = GetPlaneNormal(); var planeOrigin = transform.position; var planeToCollision = tailPosition - planeOrigin; var normalProjection = Vector3.Dot(planeToCollision, planeNormal) * planeNormal; var projectedCollisionPoint = tailPosition - normalProjection; m_colliderDebugger.RecordCollision( projectedCollisionPoint, planeNormal, tailRadius, collisionStatus); }