コード例 #1
0
        public override RaycastResult IntersectByRay(Ray ray, float maxLength)
        {
            var results = new RaycastResult[6];

            for (var i = 0; i != 6; i++)
            {
                results[i] = faces[i].IntersectByRay(ray, maxLength);
            }

            var intersections = results.Where(t => t != null);

            if (intersections.Count() == 0)
            {
                return(null);
            }

            var raycast = intersections.OrderBy(t => (t.Position - ray.Origin).Length).First();

            raycast.Body = this;
            return(raycast);
        }