エイム時、キャラクターがコントローラー操作によって回転してしまうと、例えば、キャラクターが右に向いているのにもかかわらず、弾丸は正面の照準に向かって発射されてしまいます。なので、エイム時のみ、キャラクターが、常に正面を向くように回転しないようにする必要があります。
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に設定
エイム時以外の設定はそのままにしておきます。これで、エイム時のみ、キャラクターが回転せずに視点だけが回転するようになります。
スポンサーリンク
スポンサーリンク



コメント