第一種方法:
無非就是狀態機設置參數變化,再變回來,
animator.SetBool("statename", true);
//結束動畫之後找個地方然後
animator.SetBool("statename", false);
這種難處就是
1.回調(可以在Animation設計中添加回調),
2.定時迴歸,
3.不用的時候回收時候.
第二種方法:
animator.Play("donghuaState", 0, 0);
//這三個參數第一個是狀態名字,第二個是layer, 第三個是初始化的時間點(就是播放完了,下一次的起點,非常簡單)
誤區
animator.Play("donghuaState");
這個根本不能播放
官方文檔:
using System;
using UnityEngine.Internal;
public void Play (string stateName, [DefaultValue ("-1")] int layer, [DefaultValue ("float.NegativeInfinity")] float normalizedTime);
初始層是-1 layer,就是這個問題了,所以根據自己的設計去選層次;
當然最後:
就是用Animation,參考:
http://answers.unity3d.com/questions/45070/play-animation-only-once.html
即可