unity3d animator state play once 播放一次的研究

第一種方法:

無非就是狀態機設置參數變化,再變回來,

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
即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章