【问题标题】:UPROPERTY error in Unreal虚幻中的 UPROPERTY 错误
【发布时间】:2016-07-07 12:45:19
【问题描述】:

我正在关注一个名为“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:

【问题讨论】:

  • 教程说的是“UPROPERTY”,而不是“UProperty”。
  • 成功了!谢谢

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


【解决方案1】:

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

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

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

UCLASS()、USTRUCT()、UFUNCTION() 和 UPARAM() 都有自己的说明符集,如果你想使用 C++ 开发虚幻引擎游戏,那么你也必须阅读它们。如果您不能确定说明符是如何工作的,那么只需在 UE 的引擎源代码中搜索即可。完整的引擎源代码真的是虚幻开发者的幸运。

【讨论】:

    猜你喜欢
    • 2021-03-02
    • 2020-09-25
    • 1970-01-01
    • 1970-01-01
    • 2020-09-14
    • 1970-01-01
    • 2018-08-13
    • 1970-01-01
    • 2021-04-14
    相关资源
    最近更新 更多