1. 程式人生 > >Unity 動畫模擬果凍抖動效果

Unity 動畫模擬果凍抖動效果

最近遊戲中要實現果凍動畫,網上看了一大推資料,好幾個都是用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);
	}


}