void CheckIsAcceptable(float oldFraction) { var isAcceptable = (0 <= m_ClosestHit.RigidBodyIndex) && (m_ClosestHit.RigidBodyIndex < NumDynamicBodies); if (isAcceptable) { var body = Bodies[m_ClosestHit.RigidBodyIndex]; if (IgnoreTriggers) { unsafe { isAcceptable = !ColliderUtils.IsTrigger(body.Collider, m_ClosestHit.ColliderKey); } } } if (!isAcceptable) { m_ClosestHit = m_OldHit; NumHits = 0; MaxFraction = oldFraction; m_OldHit = default(RaycastHit); } }
public bool AddHit(RaycastHit hit) { Assert.IsTrue(hit.Fraction < MaxFraction); var isAcceptable = (hit.RigidBodyIndex >= 0) && (hit.RigidBodyIndex < NumDynamicBodies); if (IgnoreTriggers) { var body = Bodies[hit.RigidBodyIndex]; isAcceptable = isAcceptable && !ColliderUtils.IsTrigger(body.Collider, hit.ColliderKey); } if (!isAcceptable) { return(false); } MaxFraction = hit.Fraction; m_ClosestHit = hit; NumHits = 1; return(true); }