示例#1
0
        // Token: 0x06003109 RID: 12553 RVA: 0x0012DE30 File Offset: 0x0012C030
        public static void GetObstacles(Vector3 position, Quaternion rotation, List <OrientedBounds> localBounds, List <GameObject> results)
        {
            results.Clear();
            if (rotation.IsDistinguishedIdentity())
            {
                rotation = Quaternion.identity;
            }
            List <GameObject> list = new List <GameObject>();

            for (int i = 0; i < localBounds.Count; i++)
            {
                OrientedBounds orientedBounds = localBounds[i];
                if (orientedBounds.rotation.IsDistinguishedIdentity())
                {
                    orientedBounds.rotation = Quaternion.identity;
                }
                orientedBounds.position = position + rotation * orientedBounds.position;
                orientedBounds.rotation = rotation * orientedBounds.rotation;
                MultiplayerBuilder.GetOverlappedColliders(orientedBounds.position, orientedBounds.rotation, orientedBounds.extents, MultiplayerBuilder.sCollidersList);
                MultiplayerBuilder.GetRootObjects(MultiplayerBuilder.sCollidersList, list);
                for (int j = list.Count - 1; j >= 0; j--)
                {
                    GameObject go = list[j];
                    if (!MultiplayerBuilder.IsObstacle(go))
                    {
                        list.RemoveAt(j);
                    }
                }
                for (int k = 0; k < MultiplayerBuilder.sCollidersList.Count; k++)
                {
                    Collider collider = MultiplayerBuilder.sCollidersList[k];
                    if (MultiplayerBuilder.IsObstacle(collider))
                    {
                        GameObject gameObject = collider.gameObject;
                        if (!list.Contains(gameObject))
                        {
                            list.Add(gameObject);
                        }
                    }
                }
                MultiplayerBuilder.sCollidersList.Clear();
                for (int l = 0; l < list.Count; l++)
                {
                    GameObject item = list[l];
                    if (!results.Contains(item))
                    {
                        results.Add(item);
                    }
                }
            }
        }