我使用一個SkeletonGraphic,預設是不顯示,當要播放動畫時才出現,播放完之後又隱藏
由於參考了類似問題的處理方式,目前的程式碼範例如下:
void Update()
{
if (shouldPlayAnim && !isBusy)
{
isBusy = true;
m_SkeletonGraphic.gameObject.SetActive(true);
m_SkeletonGraphic.AnimationState.SetEmptyAnimation(0, 0);
var entry = m_SkeletonGraphic.AnimationState.SetAnimation(0, "anim", false);
m_SkeletonGraphic.AnimationState.Update(0);
m_SkeletonGraphic.Update(0);
entry.Complete += (entry) =>
{
isBusy = false;
m_SkeletonGraphic.gameObject.SetActive(false);
};
}
}
第一次播放沒問題,問題是第二次播放之後都會先看到上次動畫的最後一幀才接著演出所指定的動畫
隱藏的手段我試過SetActive、enabled、localScale=0等作法,結果都一樣
這邊搜尋到不少同樣的問題,而我照做卻無法解決,請問是哪邊弄錯了呢?
使用的版本是spine-unity 4.2