public bool RayCastAll(Vector3 from, Vector3 to, int filterMask, int filterGroup, List <Vector3> contactPoints, List <Vector3> contactNormals) { bool hasHit = false; AllHitsRayResultCallback callback = new AllHitsRayResultCallback(from, to); callback.m_collisionFilterGroup = (CollisionFilterGroups)filterGroup; callback.m_collisionFilterMask = (CollisionFilterGroups)filterMask; hasHit = callback.HasHit(); if (hasHit) { int numHits = callback.m_hitNormalWorld.Count; for (int i = 0; i < numHits; ++i) { contactPoints.Add(callback.m_hitPointWorld[i]); contactNormals.Add(callback.m_hitNormalWorld[i]); } } return(hasHit); }