Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/287.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用C++;? >我试图制作一个只包含字符串变量的C++静态实体。我在这个项目中使用虚幻引擎4我有一个工作解决方案,但我想看看我在C++中做什么可以在C++中完成。 < /p>_C#_C++_Unreal Engine4 - Fatal编程技术网

C# 如何使用C++;? >我试图制作一个只包含字符串变量的C++静态实体。我在这个项目中使用虚幻引擎4我有一个工作解决方案,但我想看看我在C++中做什么可以在C++中完成。 < /p>

C# 如何使用C++;? >我试图制作一个只包含字符串变量的C++静态实体。我在这个项目中使用虚幻引擎4我有一个工作解决方案,但我想看看我在C++中做什么可以在C++中完成。 < /p>,c#,c++,unreal-engine4,C#,C++,Unreal Engine4,工作解决方案(C++): DFControllerGameModeBase.h #pragma once #include "CoreMinimal.h" #include "GameFramework/GameModeBase.h" #include "DFControllerGameModeBase.generated.h" #define MoveForwardInput "MoveForward" 实施: #include "DFControllerGameMod

工作解决方案(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;

}
using Assets.Scripts.Helpers;

void Play(){

string text = Utilities.MoveForward;

}

然而,这就是我在C#中使用Unity时所做的:

using System;

namespace Assets.Scripts.Helpers
{

    public static class Utilities
    {
        public static string MoveForward = "MoveForward";
    }
}
实施:

#include "DFControllerGameModeBase.h" 

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

string text = MoveForwardInput;

}
using Assets.Scripts.Helpers;

void Play(){

string text = Utilities.MoveForward;

}


如果您在封装方面没有问题,并且不会在Blueprint中使用静态,那么只需使用#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";

我不知道这是否是您真正需要的,但您可以使用名称空间和枚举类来实现。不会是静态变量,但符合目的。您可以使用include-guard或pragma一次,以避免重复。@Radagast感谢您的指导,我已经考虑了枚举。这是一个我试图探索C++和翻译我的C样本的问题。over@sujaygchandbruglesco的重定向链接应该是更好的选择。祝你好运谢谢你的回答,正是我想要的