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); }
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 })); }
public void SetPositionSize(PlanetImagePositionSize positionSize) { RectTransform.anchoredPosition = positionSize.position; RectTransform.sizeDelta = positionSize.size; SetIndex(positionSize.index); }