我正在嘗試播放我的影片師的影片 5 次。那是在每個影片結束之后,它必須再次重播它。我該怎么做呢?
public Animator anim;
void Start ()
{
StartCoroutine(PlayAnimInterval(5));
}
private IEnumerator PlayAnimInterval(int n)
{
while (n > 0)
{
anim.Play("wave", -1, 0F);
--n;
//yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length); //Returns 1 which is wrong
}
}
uj5u.com熱心網友回復:
使用for
回圈輸入IEnumerator
來解決問題。還要確保正確輸入層號。這里波狀態在第 0 層重復 5 次。
private IEnumerator PlayAnimInterval(int n)
{
for (int i = 0; i < n; i )
{
anim.Play("wave", 0, 1);
yield return new WaitForSeconds(anim.GetCurrentAnimatorStateInfo(0).length);
}
}
如何檢測影片層?
影片層是一個陣列。通過在圖層部分添加每一層,它的索引也被添加。你可以在下面找到它的代碼。
使用行為重復狀態資訊
在這種方法中,您可以解決任何狀態下的重復問題。只需創建如下所示的行為,然后添加重復次數即可。此方法也獨立于圖層作業。
public class Repeat : StateMachineBehaviour
{
public int repeatTime;
public override void OnStateExit(Animator animator, AnimatorStateInfo stateInfo, int layerIndex)
{
if (repeatTime <= 0) return;
repeatTime--;
animator.Play(stateInfo.fullPathHash);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/484716.html
上一篇:(統一)進度條向后出現
下一篇:Unity3d腳本兩次應用旋轉?