2017-09-09 50 views
0

由於標題指出動畫未播放。告訴它玩的線在協同程序中,代碼在waitfreesconds(3f)之前。統一動畫從協同程序中播放

using System.Collections; 
using System.Collections.Generic; 
using UnityEngine; 
using UnityEngine.SceneManagement; 

public class Play : MonoBehaviour { 

public Animator AnimatorRef; 
// Use this for initialization 
void Start() { 
    if (AnimatorRef == null) 
    { 
     AnimatorRef = GetComponent<Animator>(); 
    } 

} 

public void PlayGame() 
{ 
    StartCoroutine(TitlePlay()); 
    Debug.Log("playing"); 
} 

IEnumerator TitlePlay() 
{ 
    Debug.Log("playing1"); 
    AnimatorRef.SetBool("Enlarge", true); 
    yield return new WaitForSeconds(3f); 
    Debug.Log("playing2"); 

    SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1); 
} 

} 

它抓住動畫師參考罰款和所有三個評論顯示。

+0

所以,你說當你在'PlayGame'中直接調用'AnimatorRef.SetBool(「Enlarge」,true);'時,它可以正常工作? – UnholySheep

回答

1

2注意事項。

  • 月1日 -

你檢查你的轉換和AnimationController?

您可以打開AnimationController來查看布爾運行時是否更改,如果它確實會知道在動畫狀態之間存在轉換錯誤。

  • 2日 -

如果您註釋掉 「LoadScene」 的一部分,它的動畫,然後正確地發揮?

我懷疑動畫布爾是由於某種原因不允許在整個方法已經運行之前執行它的動作,但可能是錯誤的。

+0

當我手動更改書籍時,它可以工作,所以我不認爲這是過渡,但一定會好的 –

0

我的團結關機沒有保存,但現在工作。如果任何人有這個問題,請重新制作動畫,並確保您從初始動畫開始並單擊添加片段。然後它對我有效:)