Ejemplo n.º 1
0
        /// <summary>
        /// Get anchored position of RectTransform apply mirror.
        /// </summary>
        /// <param name="rect"></param>
        /// <param name="mode"></param>
        /// <param name="anchorMin"></param>
        /// <param name="anchorMax"></param>
        /// <param name="pivot"></param>
        /// <returns></returns>
        public static Vector2 GetAnchoredPosition(this RectTransform rect, UIMirrorMode mode,
                                                  out Vector2 anchorMin, out Vector2 anchorMax, out Vector2 pivot)
        {
            anchorMin = rect.anchorMin;
            anchorMax = rect.anchorMax;
            pivot     = rect.pivot;
            var h = 1;
            var v = 1;

            switch (mode)
            {
            case UIMirrorMode.Horizontal:
                anchorMin.x = 1 - anchorMin.x;
                anchorMax.x = 1 - anchorMax.x;
                pivot.x     = 1 - pivot.x;
                h           = -1;
                break;

            case UIMirrorMode.Vertical:
                anchorMin.y = 1 - anchorMin.y;
                anchorMax.y = 1 - anchorMax.y;
                pivot.y     = 1 - pivot.y;
                v           = -1;
                break;

            case UIMirrorMode.Both:
                anchorMin = Vector2.one - anchorMin;
                anchorMax = Vector2.one - anchorMax;
                pivot     = Vector2.one - pivot;
                h         = v = -1;
                break;
            }
            return(new Vector2(rect.anchoredPosition.x * h, rect.anchoredPosition.y * v));
        }
Ejemplo n.º 2
0
        /// <summary>
        /// Set position of RectTransform apply mirror.
        /// </summary>
        /// <param name="rect"></param>
        /// <param name="mode"></param>
        public static void SetPosition(this RectTransform rect, UIMirrorMode mode)
        {
            var anchoredPos = GetAnchoredPosition(rect, mode, out Vector2 anchorMin, out Vector2 anchorMax, out Vector2 pivot);

            rect.anchorMin        = anchorMin;
            rect.anchorMax        = anchorMax;
            rect.pivot            = pivot;
            rect.anchoredPosition = anchoredPos;
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Set position of RectTransform apply mirror.
 /// </summary>
 /// <param name="mode"></param>
 public void SetPosition(UIMirrorMode mode)
 {
     RectTransform.SetPosition(mode);
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Get anchored position of RectTransform apply mirror.
 /// </summary>
 /// <param name="mode"></param>
 /// <param name="anchorMin"></param>
 /// <param name="anchorMax"></param>
 /// <param name="pivot"></param>
 /// <returns></returns>
 public Vector2 GetAnchoredPosition(UIMirrorMode mode, out Vector2 anchorMin, out Vector2 anchorMax, out Vector2 pivot)
 {
     return(RectTransform.GetAnchoredPosition(mode, out anchorMin, out anchorMax, out pivot));
 }