虚幻中的UPROPERTY错误

时间:2016-07-07 12:45:19

标签: c++ visual-studio-2015 unreal-engine4

我正在关注一个名为“Battery Pickup”的虚幻教程,我认为该教程的版本是旧的。我有完整的代码,如教程中,他们没有任何错误,但我在编辑器中得到所有这些语法错误,我真的不知道如何摆脱它们。

这是我的代码:

#pragma once
#include "GameFramework/Actor.h"
#include "Pickup.generated.h"
UCLASS()
class BATTERYCOLLECTOR_API APickup : public AActor
{
    GENERATED_BODY()
public: 
    APickup();
    virtual void BeginPlay() override;
    virtual void Tick( float DeltaSeconds ) override;
    FORCEINLINE class UStaticMeshComponent* GetMesh() const { return PickupMesh; }

private:
    UProperty(VisibleAnywhere, BlueprintReadOnly, Category = "**Pickup**", meta = (**AllowPrivateAccess** = "true")**)**
    class UStaticMeshComponent* **PickupMesh**; 
};

这些是我得到的错误(上面代码中的粗体文字): 标识符AllowPrivateAccess未定义C ++ Unreal, 标识符PickupMesh未定义, 不适合存在从“const char [7]”转换为“UPROPERTY”的构造函数, 其他一些括号错过了。

Here is what it looks like:

1 个答案:

答案 0 :(得分:0)

虽然评论是有效答案,但我尝试提供更多信息。

Unreal用来识别类,属性等的宏都是大写字母,如UCLASS(),UPROPERTY()。文档在这里[1]

特别是对于UPROPERTY(),文档在这里[2]。特别是阅读“属性说明符”部分,该属性可以由这些说明符进行修饰/控制,以便您可以将其公开给蓝图,控制如何在编辑器中编辑它等。

UCLASS(),USTRUCT(),UFUNCTION()和UPARAM()都有自己的说明符集,如果你想用C ++开发虚幻引擎游戏,那么你也必须阅读它们。如果您无法确定说明符的工作原理,那么只需在UE的引擎源代码中进行搜索即可。对于虚幻开发人员来说,完整的引擎源代码真的很幸运。