/// <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(); } }
/// <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(); } }
/// <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(); } }