WorldToScreenPoint() public static method

public static WorldToScreenPoint ( Camera cam, Vector3 worldPoint ) : Vector2
cam Camera
worldPoint Vector3
return Vector2
コード例 #1
0
        /// <summary>
        /// Counts the bounding box corners of the given RectTransform that are visible from the given Camera in screen space.
        /// </summary>
        /// <returns>The amount of bounding box corners that are visible from the Camera.</returns>
        /// <param name="rectTransform">Rect transform.</param>
        /// <param name="camera">Camera.</param>
        private static int CountCornersVisibleFrom(this RectTransform rectTransform, Camera camera)
        {
            Rect screenBounds = new Rect(0f, 0f, Screen.width, Screen.height);

            Vector3[] objectCorners = new Vector3[4];
            rectTransform.GetWorldCorners(objectCorners);

            int visibleCorners = 0;

            for (var i = 0; i < objectCorners.Length; i++)
            {
                Vector3 tempScreenSpaceCorner = RectTransformUtility.WorldToScreenPoint(camera, objectCorners[i]);

                if (screenBounds.Contains(tempScreenSpaceCorner))
                {
                    visibleCorners++;
                }
            }

            return(visibleCorners);
        }