エイム時、キャラクターがコントローラー操作によって回転してしまうと、例えば、キャラクターが右に向いているのにもかかわらず、弾丸は正面の照準に向かって発射されてしまいます。なので、エイム時のみ、キャラクターが、常に正面を向くように回転しないようにする必要があります。
MyCharacter.cppのコンストラクタに置いてあるキャラクタームーブメント関連のコードをtick関数に移動しますが、エイム時のみ、キャラクターが回転しないようにします。
if (bAimingButtonPressed) { bUseControllerRotationPitch = false; bUseControllerRotationRoll = false; bUseControllerRotationYaw = true; GetCharacterMovement()->bOrientRotationToMovement = false; GetCharacterMovement()->RotationRate = FRotator(0.f, 540.f, 0.f); } else { bUseControllerRotationPitch = false; bUseControllerRotationRoll = false; bUseControllerRotationYaw = false; GetCharacterMovement()->bOrientRotationToMovement = true; GetCharacterMovement()->RotationRate = FRotator(0.f, 540.f, 0.f); }
エイム時、
bUseControllerRotationYawをtrueに設定
bOrientRotationToMovementをfalseに設定
エイム時以外の設定はそのままにしておきます。これで、エイム時のみ、キャラクターが回転せずに視点だけが回転するようになります。
スポンサーリンク
スポンサーリンク
コメント