コード例 #1
0
        private void ChangeInformationEventHandler(InformationUIData data)
        {
            switch (data.ChangeType)
            {
            case InformationUIChangeType.Immediately:
                textInformation.text = data.Text;
                break;

            case InformationUIChangeType.Animate:
                var rectTransform   = GetComponent <RectTransform>();
                var currentPosition = rectTransform.anchoredPosition;
                var topPosition     = Vector2.zero;
                var distance        = Mathf.Abs(topPosition.y - currentPosition.y);
                var destination     = topPosition.AddY(distance + textInformation.rectTransform.sizeDelta.y + padding);

                var dataDuration = Math.Abs(data.Duration) < 0.0001f ? 0.5f : data.Duration * 0.5f;
                rectTransform.DOAnchorPos(destination, dataDuration)
                .OnComplete(() =>
                {
                    textInformation.text = data.Text;
                    rectTransform.DOAnchorPos(currentPosition, dataDuration);
                });
                break;

            default:
                throw new ArgumentOutOfRangeException();
            }

            onChange.Invoke();
        }
コード例 #2
0
 public static InformationUIData SetDuration(this InformationUIData data, float duration)
 {
     data.Duration = duration;
     return(data);
 }