【Unity】Time.deltaTimeから算出した速度とNavMeshAgentの速度が合わない件の対応

どうも、だらはです。
先日、プレイヤーと敵の速度を同値に設定したはずなのに速度が合わない現象が発生しました。
具体的には、Time.deltaTimeから算出した速度とnavMeshAgentの速度が一致しませんでした。
今回、解決方法を見つけましたので情報展開したいと思います。

スポンサーリンク

解決方法

解決方法は以下の通りです。
[Animator -> Apply Root Motion]のチェックを外す。

[Apply Root Motion]のチェックを入れると、位置の制御はアニメーションからになります。
スクリプトから位置を制御したい場合は、[Apply Root Motion]のチェックを外すと良いです。

最後に

いかがでしたでしょうか。
このアAnimatorの設定は曲者で、Animation側にも似たような設定があります。(Root Transform Positionなど)
正しく設定しないと、アニメーションループ時に座標が元に戻ってしまったり、全く意図しない動きとなってしまいます。
一度目を通しておくと将来役に立つと思うので、是非読んでみて頂けたらと思います('ω’)

◆アニメーションループ時に座標が元に戻ってしまう現象の対策

◆足の動きがおかしくなる現象の対策

以上、だらはでした。

スポンサーリンク

応用

Posted by daraha_gm