如何使静态类使用C ++引用字符串变量?

时间:2019-04-22 04:15:07

标签: c# c++ unreal-engine4

因此,我试图使仅包含字符串变量的通用C ++静态。我在该项目中使用虚幻引擎4。 我有一个可行的解决方案,但希望了解我在C#中所做的工作是否可以在C ++中完成。

工作解决方案(C ++): DFControllerGameModeBase.h

#pragma once

#include "CoreMinimal.h"
#include "GameFramework/GameModeBase.h"
#include "DFControllerGameModeBase.generated.h"


#define MoveForwardInput        "MoveForward"

实施:

#include "DFControllerGameModeBase.h" 

void ADFCharacter::Play(){
.....

string text = MoveForwardInput;

}

但这是我在Unity中使用C#所做的事情

using System;

namespace Assets.Scripts.Helpers
{

    public static class Utilities
    {
        public static string MoveForward = "MoveForward";
    }
}

实施:

using Assets.Scripts.Helpers;

void Play(){

string text = Utilities.MoveForward;

}

1 个答案:

答案 0 :(得分:2)

如果封装没有问题,并且不会在Blueprint中使用静态变量,那么只需使用#define即可。

您还希望将大写字母用于#define命名约定。

#define MOVE_FORWARD_INPUT "MoveForward"

但是,如果您希望将其封装并能够在蓝图中进行调用。然后,您必须创建一个静态帮助器类。

.h
class Utilities
{
public:
    static const FString MoveForward;

    //create BP getter function here
}

.cpp
const FString Utilities::MoveForward = "MoveForward";