Animator(アニメーションシステム)とNavmesh(経路探索)を組み合わせてみます。具体的には止まったら静止モーション、移動中は走るモーションを使用します。
やり方
まず移動量でキャラクターのモーションを切り替えます。AnimatorはApply Root MotionでキャラクターのRoot座標を動かす事を想定していますが、今回の場合は移動量に従ってアニメーションを切り替える訳です。
なのでまずはApply Root Motionのチェックを外します。これでキャラクターの移動はNavmeshAgentもしくはスクリプトでしか動かなくなります。
次にアニメーション側の設定です。キャラクターの移動速度をAnimatorに伝えるためパラメータを設定します。
Speedの値でアニメーションを切り替えるようにします。今回は「静止」「歩行」「走行」の3種類のアニメーションをSpeedの値で切り替えます。切り替えはBlend Treeを使用します。Animatorで右クリック>Create State>From New Blend Treeでブレンドツリーを作ります。
Blend Tree内でAdd Motion Fieldを選択してモーションを3つ登録します。
Automate thresholds(自動的に閾値を設定)のチェックを外し自分で設定可能にします。 Threshold(閾値)の値は静止から歩行までは小さめ、歩行から走るまでは少し長めに設定します。
後は、このブレンドツリーに使用する値をSpeedに設定します。
後はスクリプトでNavmeshAgentの移動値をAnimatorのSpeedに登録してやります。NavmeshAgentの移動値はNavmeshAgent.velocityに格納されているので、そこから計算しています。
これでキャラクターが停止中は静止アニメーション、移動中は移動アニメーションが設定できます。落下可能なrigidbody連携navmeshの場合は、地面との距離やrigidbodyのvelocityをとっておくと、ジャンプや着地モーションも設定できそうです。