コード例 #1
0
        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);
        }