【发布时间】:2017-06-22 10:51:39
【问题描述】:
我正在努力解决标题中提到的问题。现在我在构造函数中设置默认值,然后我想用我的函数更改它,但它似乎不起作用。
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.运行时创建GameState 2.在运行时也将其设置为使用的默认游戏状态。
【问题讨论】:
-
您遇到了什么错误?你的确切问题是什么?所有这些类型的定义以及这些变量和函数的声明是什么?请提供Minimal, Complete, and Verifiable example 并更彻底地说明您的情况。
-
我已经编辑了我的问题。没有错误,只是无法正常工作。
-
GameState 用于将信息从服务器传送到任何连接的客户端。您为什么要尝试将 GameState 设置为其他内容?
-
我正在将它们换成其他平台。它们有一些碰撞功能,所以我选择了不止一个,我需要根据平台交换它们;)
标签: c++ unreal-engine4