タイトルに記載されている問題で苦労しています。今はコンストラクタでデフォルトの設定をしていますが、それを私の関数で変更したいのですが、 。実行時にゲームの状態を作成して変更する
void AMyGameModeBase::SwapGameState(AGameStateBase* GameStateVariable)
{
GameStateClass = GameStateVariable->StaticClass();
}
これを正しく行うにはどうすればよいですか? MyGameModeBase.h
#pragma once
#include "GameFramework/GameMode.h"
#include "MyGameModeBase.generated.h"
/**
*
*/
UCLASS()
class PROJECT_API AMyGameModeBase : public AGameMode
{
GENERATED_BODY()
public:
AMyGameModeBase();
UFUNCTION(BlueprintCallable, Category="GameState")
void SwapGameState(AGameStateBase* GameStateVariable);
};
MyGameModeBase.cpp
#include "Project.h"
#include "MyGameModeBase.h"
AMyGameModeBase::AMyGameModeBase()
{
GameStateClass = AGameStateBase::StaticClass();
}
void AMyGameModeBase::SwapGameState(AGameStateBase* GameStateVariable)
{
GameStateClass = GameStateVariable->StaticClass();
}
私がやっている:これは私の全体のコードです
:良い説明は素晴らしい:)
EDITだろう次に: 1.ゲームモードの青写真を開く 2.イベントからのドラッグプレイを開始し、SwapGameStateを呼び出します。 3. MyGameStateを参照する変数を作成しています。 4.私はノード "GetGameState"で取得した印刷文字列名で印刷していますが、変更されていないことを確認してください。
達成したいことは です。実行時に1.CreateGameStateを実行します。実行時にデフォルトのゲーム状態を使用するように設定します。
です、あなたはどのようなエラーが発生していますか?あなたの正確な問題は何ですか?これらのすべての型の定義とこれらの変数と関数の宣言は何ですか? [最小、**完全**、および検証可能な例](https://stackoverflow.com/help/mcve)を提供し、状況をより詳細に説明してください。 – InternetAussie
質問を編集しました。ちょうどうまくいかないエラーはありません。 –
GameStateは、サーバーから接続されたすべてのクライアントに情報を伝達するためのものです。なぜGameStateを別のものに設定しようとしていますか? – JonS