切換
舊版
前往
大廳
主題

Unity 載入帶有Animator 之 Bundle 出現動畫不合法的問題 (更新)

GG | 2020-05-16 20:39:54 | 巴幣 8 | 人氣 793

遇到一個奇怪的問題,載入 Asset Bundle 建立物件 (GameObject.Instantiate) 時出現這個奇怪的錯誤訊息。

The Animator Controller you have used is not valid. Animations will not play

反覆檢查後發現是動畫 Clip 沒有載入造成的。

繼續追查下去確認了這個問題的幾個特性:
  1. 打包成 Asset Bundle 的物件才會發生這情況。
  2. 自帶動畫 Clip 的 FBX 檔才會發生這情況。
  3. 同一包 Bundle 裡只要有一個物件出現這種壞掉的情況會造成其它物件也壞掉。
  4. 不固定發生。也就是有時候載入動畫正常,有時候出錯,完全憑運氣。

最終觀察到這個情況的發生原因,是「Play 之後將視窗的 Focus 移到 Unity 之外再移回來」。更白話的說明就是在 Unity 按了 Play,程式開始執行了;接著又點選了其它視窗例如瀏覽器、編輯器、或是回了一下 Line 訊息之類的,總之就是切換到 Unity 以外的視窗;然後再度把焦點回到 Unity,此時若有 Instantiate 的動作就會出現動畫載入不完整的問題。

發生的原因如此,那解法自然是 Play 之後不要任意切換到別的視窗即可。

以上為這次卡關做個紀錄。
總結,個人覺得這是 Unity 自帶的奇怪 bug,若誰知道更好的解法也請跟我說。
Unity 真的很多莫名奇妙的坑。

以上內容同步發表於 Blog,歡迎幫我拍手賺 LikeCoin。

創作回應

更多創作