我有一個用于淡入(從透明變為黑色)和另一個淡出(從黑色變為透明)的黑屏的 UI 影片。我正在嘗試播放淡入影片(螢屏變黑),然后在螢屏仍為黑色時執行一些代碼行,然后播放淡出螢屏。
我試圖用StartCoroutine(Text());這樣的方式來實作這一點:
transitionAnim.Play("fade_in");
StartCoroutine(Text());
character.SetActive(false);
Damagedcharacter.SetActive(true);
transitionAnim.Play("fadeout");
IEnumerator Text() // <- its a standalone method
{
yield return new WaitForSeconds(1f);
}
我想要這些行:
character.SetActive(false);
Damagedcharacter.SetActive(true);
在黑屏期間執行。但他們不是。發生的事情是它們首先被執行,然后黑屏淡入淡出。
如何讓黑屏停留一段時間并在黑屏期間執行一些行然后淡出?
uj5u.com熱心網友回復:
協程不會神奇地延遲其啟動方法中的代碼。
要么將您的行移到IEnumerator類似的末尾
transitionAnim.Play("fade_in");
StartCoroutine(Text());
IEnumerator Text()
{
yield return new WaitForSeconds(1f);
character.SetActive(false);
Damagedcharacter.SetActive(true);
transitionAnim.Play("fadeout");
}
雖然我個人不會混合影片和協程。而是使用影片事件并在您淡入黑色時進行回呼,然后從那里做一些事情,然后觸發淡出。
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/523509.html
標籤:C#unity3d
