예제 #1
0
        public static Vector3   GetRectPointLocal(this RectTransform inCanvasRect, RectPositions position)
        {
            Vector3 localPos = Vector3.zero;

            switch (position)
            {
            case RectPositions.TopLeft:         localPos = new Vector3(inCanvasRect.rect.xMin, inCanvasRect.rect.yMax, inCanvasRect.localPosition.z); break;

            case RectPositions.TopCenter:       localPos = new Vector3(inCanvasRect.rect.center.x, inCanvasRect.rect.yMax, inCanvasRect.localPosition.z); break;

            case RectPositions.TopRight:        localPos = new Vector3(inCanvasRect.rect.xMax, inCanvasRect.rect.yMax, inCanvasRect.localPosition.z); break;

            case RectPositions.MiddleLeft:      localPos = new Vector3(inCanvasRect.rect.xMin, inCanvasRect.rect.center.y, inCanvasRect.localPosition.z); break;

            case RectPositions.MiddleCenter:    localPos = new Vector3(inCanvasRect.rect.center.x, inCanvasRect.rect.center.y, inCanvasRect.localPosition.z); break;

            case RectPositions.MiddleRight:     localPos = new Vector3(inCanvasRect.rect.xMax, inCanvasRect.rect.center.y, inCanvasRect.localPosition.z); break;

            case RectPositions.BottomLeft:      localPos = new Vector3(inCanvasRect.rect.xMin, inCanvasRect.rect.yMin, inCanvasRect.localPosition.z); break;

            case RectPositions.BottomCenter:    localPos = new Vector3(inCanvasRect.rect.center.x, inCanvasRect.rect.yMin, inCanvasRect.localPosition.z); break;

            case RectPositions.BottomRight:     localPos = new Vector3(inCanvasRect.rect.xMax, inCanvasRect.rect.yMin, inCanvasRect.localPosition.z); break;
            }
            return(localPos);
        }
예제 #2
0
        public static Vector3   GetRectPointWorld(this RectTransform inCanvasRect, RectPositions position)
        {
            Vector3 localPos;

            localPos = inCanvasRect.GetRectPointLocal(position);
            Vector3 worldPos = inCanvasRect.TransformPoint(localPos);

            return(worldPos);
        }
예제 #3
0
        public static Vector3   CanvasToCameraWorldPoint(this Camera cam, Canvas canvas, RectTransform inCanvasRect, RectPositions position, float depth)
        {
            Vector3 worldPos = inCanvasRect.GetRectPointWorld(position);
            Vector3 output   = cam.CanvasToCameraWorldPoint(canvas, worldPos, depth);

            return(output);
        }