Ejemplo n.º 1
0
 private void SetPivot(AnimationStartPosition pivotPosition)
 {
     switch (pivotPosition)
     {
         case (AnimationStartPosition.Bottom):
             rectTransform.pivot = new Vector2();
             break;
         case (AnimationStartPosition.Top):
             rectTransform.pivot = new Vector2(0.5f, 1);
             break;
         case (AnimationStartPosition.Right):
             rectTransform.pivot = new Vector2(1, 0.5f);
             break;
         case (AnimationStartPosition.Left):
             rectTransform.pivot = new Vector2(0, 0.5f);
             break;
         case (AnimationStartPosition.TopRight):
             rectTransform.pivot = Vector2.one;
             break;
         case (AnimationStartPosition.TopLeft):
             rectTransform.pivot = new Vector2(0, 1);
             break;
         case (AnimationStartPosition.BottomRight):
             rectTransform.pivot = new Vector2(1, 0);
             break;
         case (AnimationStartPosition.BottomLeft):
             rectTransform.pivot = Vector2.zero;
             break;
         case (AnimationStartPosition.Center):
             rectTransform.pivot = new Vector2(0.5f, 0.5f);
             break;
     }
 }
Ejemplo n.º 2
0
    /// <summary>
    /// Used for initializing the position from a certian corner.
    /// </summary>
    /// <param name="initialPosition">the start position of the transform</param>
    /// <param name="rect">the rect transform</param>
    /// <param name="animationFromCornerType">BottomRight, TopRight, BottomLeft, TopLeft, Up, Bottom, Left, Or Right</param>
    /// <param name="animationFromCornerStartFromType">Screen or Rect</param>
    /// <returns></returns>
    public static Vector3 GetStartPositionFromCorner
        (Vector3 initialPosition, RectTransform rect, AnimationStartPosition animationFromCornerType, AnimationFromCornerStartFromType animationFromCornerStartFromType)
    {
        float startPositionX = 0;
        float startPositionY = 0;

        if (animationFromCornerStartFromType == AnimationFromCornerStartFromType.ScreenCorner)
        {
            switch (animationFromCornerType)
            {
            case (AnimationStartPosition.BottomRight):
                startPositionX = Screen.width + (rect.rect.width / 2);
                startPositionY = 0 - (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.BottomLeft):
                startPositionX = 0 - (rect.rect.width / 2);
                startPositionY = 0 - (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.TopRight):
                startPositionX = Screen.width + (rect.rect.width / 2);
                startPositionY = Screen.height + (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.TopLeft):
                startPositionX = 0 - (rect.rect.width / 2);
                startPositionY = Screen.height + (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.Top):
                startPositionX = initialPosition.x;
                startPositionY = Screen.height + (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.Bottom):
                startPositionX = initialPosition.x;
                startPositionY = 0 - (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.Left):
                startPositionX = 0 - (rect.rect.width / 2);
                startPositionY = initialPosition.y;
                break;

            case (AnimationStartPosition.Right):
                startPositionX = Screen.width + (rect.rect.width / 2);
                startPositionY = initialPosition.y;
                break;
            }
        }
        else if (animationFromCornerStartFromType == AnimationFromCornerStartFromType.ParentRectCorner)
        {
            switch (animationFromCornerType)
            {
            case (AnimationStartPosition.Top):
                startPositionX = initialPosition.x;
                startPositionY = rect.parent.position.y + (rect.parent.GetComponent <RectTransform>().rect.height / 2) + (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.Bottom):
                startPositionX = initialPosition.x;
                startPositionY = rect.parent.position.y - (rect.parent.GetComponent <RectTransform>().rect.height / 2) - (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.Left):
                startPositionX = rect.parent.position.x - (rect.parent.GetComponent <RectTransform>().rect.width / 2) - (rect.rect.width / 2);
                startPositionY = initialPosition.y;
                break;

            case (AnimationStartPosition.Right):
                startPositionX = rect.parent.position.x + (rect.parent.GetComponent <RectTransform>().rect.width / 2) + (rect.rect.width / 2);
                startPositionY = initialPosition.y;
                break;

            case (AnimationStartPosition.BottomRight):
                startPositionX = rect.parent.position.x + (rect.parent.GetComponent <RectTransform>().rect.width / 2) + (rect.rect.width / 2);
                startPositionY = rect.parent.position.y - (rect.parent.GetComponent <RectTransform>().rect.height / 2) - (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.BottomLeft):
                startPositionX = rect.parent.position.x - (rect.parent.GetComponent <RectTransform>().rect.width / 2) - (rect.rect.width / 2);
                startPositionY = rect.parent.position.y - (rect.parent.GetComponent <RectTransform>().rect.height / 2) - (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.TopRight):
                startPositionX = rect.parent.position.x + (rect.parent.GetComponent <RectTransform>().rect.width / 2) + (rect.rect.width / 2);
                startPositionY = rect.parent.position.y + (rect.parent.GetComponent <RectTransform>().rect.height / 2) + (rect.rect.height / 2);
                break;

            case (AnimationStartPosition.TopLeft):
                startPositionX = rect.parent.position.x - (rect.parent.GetComponent <RectTransform>().rect.width / 2) - (rect.rect.width / 2);
                startPositionY = rect.parent.position.y + (rect.parent.GetComponent <RectTransform>().rect.height / 2) + (rect.rect.height / 2);
                break;
            }
        }

        Vector3 startPos = new Vector3(startPositionX, startPositionY, 0);

        return(startPos);
    }