コード例 #1
0
 public PlanetImagePositionSize GetPlanetImagePositionSize(int planetId, int index)
 {
     //patch: sun image has other dimensions than other planet images...
     if (planetId != -1 && index == 0)
     {
         PlanetImagePositionSize targPositionSize = planetPositionSizes.FirstOrDefault(ps => ps.index == 0);
         return(new PlanetImagePositionSize {
             position = new Vector2(200, 0),
             size = targPositionSize.size,
             index = 0
         });
     }
     else
     {
         //normal search
         for (int i = 0; i < planetPositionSizes.Length; i++)
         {
             if (planetPositionSizes[i].index == index)
             {
                 return(planetPositionSizes[i]);
             }
         }
     }
     return(null);
 }
コード例 #2
0
        public void MoveTo(PlanetImagePositionSize positionSize, float duration)
        {
            Vector2 currentPosition = RectTransform.anchoredPosition;
            Vector2 currentSize     = RectTransform.sizeDelta;

            Vector2AnimationData positionData = new Vector2AnimationData {
                StartValue = currentPosition,
                EndValue   = positionSize.position,
                Duration   = duration,
                EaseType   = EaseType.EaseInOutCubic,
                OnStart    = (pos, obj) => {
                    RectTransform.anchoredPosition = pos;
                    if (parent.IsActiveIndex(CurrentIndex))
                    {
                        RectTransform.gameObject.Activate();
                    }
                },
                OnUpdate = (pos, t, obj) => RectTransform.anchoredPosition = pos,
                OnEnd    = (pos, obj) => {
                    RectTransform.anchoredPosition = pos;
                    SetIndex(positionSize.index);
                    if (!parent.IsActiveIndex(positionSize.index))
                    {
                        RectTransform.gameObject.Deactivate();
                    }
                }
            };

            Vector2AnimationData sizeData = new Vector2AnimationData {
                StartValue = currentSize,
                EndValue   = positionSize.size,
                Duration   = duration,
                EaseType   = EaseType.EaseInOutCubic,
                OnStart    = (size, obj) => {
                    RectTransform.sizeDelta = size;
                },
                OnUpdate = (size, t, obj) => {
                    RectTransform.sizeDelta = size;
                },
                OnEnd = (size, obj) => {
                    RectTransform.sizeDelta = size;
                }
            };

            StartCoroutine(MoveToImpl(new List <Vector2AnimationData> {
                positionData, sizeData
            }));
        }
コード例 #3
0
 public void SetPositionSize(PlanetImagePositionSize positionSize)
 {
     RectTransform.anchoredPosition = positionSize.position;
     RectTransform.sizeDelta        = positionSize.size;
     SetIndex(positionSize.index);
 }