예제 #1
0
        /// <summary>
        /// 物体抖动
        /// 应用场景:斗地主:(炸弹,王炸时,场景根结点振动)
        /// </summary>
        /// <param name="key"></param>
        /// <param name="item"></param>
        private async void PlayObjectShake(string key, TweenAnimationData item)
        {
            item.target.DOShakePosition(0.5f, new Vector3(0, 10, 0), 20).SetEase(Ease.Linear);

            await Task.Delay(500);

            item.target.localPosition = Vector3.zero;

            if (AniTypeEnd.TryGetValue(key, out Action endAction))
            {
                endAction();
            }
        }
예제 #2
0
        /// <summary>
        /// 由大到小动画
        /// </summary>
        /// <param name="key"></param>
        /// <param name="item"></param>
        private async void PlayMax2ToMin(string key, TweenAnimationData item)
        {
            item.target.localScale = Vector3.one * 2;

            item.target.gameObject.SetActive(true);

            Tweener _tweener = item.target.DOScale(Vector3.one, item.playTime).Pause().SetAutoKill(false);

            item.tweener = _tweener;

            _tweener.PlayForward();

            await Task.Delay((int)item.playTime * 1000);

            if (AniTypeEnd.TryGetValue(key, out Action endAction))
            {
                endAction();
            }
        }
예제 #3
0
        /// <summary>
        /// 数字滚动动画
        /// 应用场景:玩家分数变化
        /// </summary>
        /// <param name="key"></param>
        /// <param name="item"></param>
        private async void PlayDigitalRoll(string key, TweenAnimationData item, float newNum)
        {
            var text = item.target.GetComponent <Text>();

            var rollData = item.rollNumData;

            rollData.NewNumber = newNum;

            rollData.sequence.Append(DOTween.To(delegate(float value)
            {
                var temp = Math.Floor(value);

                text.text = temp + "";
            }, rollData.OldNumber, rollData.NewNumber, item.playTime));

            rollData.OldNumber = rollData.NewNumber;

            await Task.Delay((int)item.playTime * 1000);

            if (AniTypeEnd.TryGetValue(key, out Action endAction))
            {
                endAction();
            }
        }