Appearance
第09回 3D探索2
3 / 4 実際の移動速度を渡す
このステップの目的
入力値ではなく、キャラクターの実際の移動量からAnimatorのSpeedを設定する
移動量から速度を求める
csharp
Vector3 movement = controller.transform.position - previousPosition;
float actualSpeed = movement.magnitude / Time.deltaTime;
animator.SetFloat("Speed", actualSpeed / runSpeed);
previousPosition = controller.transform.position;入力があっても壁に当たって動いていなければ、見た目は走らせません。実際の状態を見た目へ反映することが重要です。
速度を比較する
移動速度とアニメーション速度の倍率を変え、足滑りが少ない値を探します。
チェックリスト
- 実際の移動量から速度を求めている
- 壁に向かって入力しても走り続けない
- 移動速度とモーション速度を比較調整した