(:3[kanのメモ帳]

個人ゲーム開発者kan.kikuchiのメモ的技術ブログ。月木更新でUnity関連がメイン。

error dt >= 0【Unity】【トラブルシューティング】


このエントリーをはてなブックマークに追加

 

 

↑これの開発中にて…

 

 

 

攻撃アニメーション終了後に,

待機モーションへスムーズに移行したいと思いググった所,

"CrossFadeQueued"なるものを発見!

 

CrossFadeQueuedは実行中のアニメーション終了後に,

指定したアニメーションをスムーズに移行&実行するというもの.

 

が,これを使って実行した所

 

 

error dt >= 0 

 

 

( ´・◡・`)?

 

 

動いてはいるものの, CrossFadeQueuedされる度にエラーが吐かれる様子…

 

ググってみた所,英語ながら関連情報発見!

http://answers.unity3d.com/questions/170425/what-cause-error-dt-0.html

 

英語は分かりませんが,

animation["idle"].speed = 1.2f;

という記述から,アニメーションスピードを変更すると

 CrossFadeQueuedにてエラーが…

 

 

実際にspeedを変更せずに実行してみると,エラーが出ない!やった!!

いやでもスピードは変更しないとアカンから,解決にはなっていないという…

 

 

ということで,以下代替案

 

 

Invokeは第一引数に指定した関数を,

第二引数に指定した時間後に実行するというもの.

 

上記の例だとInvoke_AttackStandyという関数を, 

アニメ終了後(.lengthで元のアニメ時間,.speedで実行速度倍率) の

ちょっと前に実行する(-0.1f)という感じにしました.

 

アニメーション終了直後だとスムーズに移行出来なかったので,0.1f引きました.