UDK ゲームのカスタム ポーン クラスにスプリント状態を書き込んでいます。状態を管理するための Epic のサンプル コードを見ていましたが、かなりの量のゲーム ロジックが Pawn クラスではなく Controller クラスにあります。これは私には逆に思えます。私は当初、コントローラは単に AI とプレーヤーの入力を処理するだけだと思っていましたが、今では独自の状態コードをどこに配置すればよいかわかりません。
たとえば、PlayerController.uc ファイルには PlayerWalking、PlayerClimbing などがありますが、ポーンの状態も変更されているようです。
// player is climbing ladder
state PlayerClimbing
{
ignores SeePlayer, HearNoise, Bump;
event NotifyPhysicsVolumeChange( PhysicsVolume NewVolume )
{
if( NewVolume.bWaterVolume )
{
GotoState( Pawn.WaterMovementState );
}
else
{
GotoState( Pawn.LandMovementState );
}
}
...
スプリント状態は PlayerWalking 状態を無効にする必要があるため、ポーンではなくコントローラー クラスにスプリント状態コードを配置する必要がありますか? そのロジックをどのように処理する必要がありますか? ありがとう!