Unity 動畫模擬果凍抖動效果
阿新 • • 發佈:2018-12-20
最近遊戲中要實現果凍動畫,網上看了一大推資料,好幾個都是用shader做的(本人不懂shader),把他們的shader撈下來結果完全不是那麼回事(感覺送到了欺騙).自己又嘗試修改他們的shader(後來發現是趕鴨子上架,就放棄了);最後轉過頭一想,不就是動畫麼,直接用dotween做不就行了,也許沒有shader做出的那麼完美,不過能實現需求不就行了(安慰自己),廢話不多說,直接上程式碼(包括一個持續動畫和點選效果),就不放截圖了
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; using DG.Tweening; public class JellyAnimition : MonoBehaviour { public Transform trans; Button btn; // Use this for initialization void Start () { btn = trans.GetComponent<Button> (); OnAnimition (true); } public void OnAnimition(bool play) { if (play) { trans.DOShakeScale (6f, 0.15f, 2, 20).SetLoops (-1, LoopType.Yoyo); } else { trans.DOKill (); trans.localScale = Vector3.one; } } public void OnClick() { btn.interactable = false; OnAnimition (false); trans.DOShakeScale (1f, 0.3f, 8, 80).OnComplete(()=>{ btn.interactable = true; OnAnimition(true); }); } void OnDisable() { OnAnimition (false); } void OnDestroy() { OnAnimition (false); } }