我正在努力解決標題中提到的問題。現在我在構造函數中設置了默認值,然後我想用我的函數對其進行更改,但它似乎不起作用。在運行時創建並更改遊戲狀態
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();
}
我在做什麼然後是: 1.打開GameMode藍圖 2.從Event開始播放並撥打SwapGameState 3.我正在創建引用MyGameState的變量。 4.然後,我使用打印字符串名稱打印節點「GetGameState」,並且看到它沒有更改。
我想實現的是: 1.運行時創建遊戲狀態 2.在運行時將其設置爲使用的默認遊戲狀態。
你得到什麼錯誤的靜態函數?你確切的問題是什麼?所有這些類型的定義和這些變量和函數的聲明是什麼?請提供[最小,**完整**和可驗證示例](https://stackoverflow.com/help/mcve)並更全面地解釋您的情況。 – InternetAussie
我編輯了我的問題。沒有錯誤,它只是不工作。 –
GameState用於從服務器向任何連接的客戶端傳遞信息。你爲什麼試圖將GameState設置爲其他東西? – JonS