过了一段时间,我想到在Unity旁边尝试虚幻引擎(看看如何编写代码,如何在C ++和UE API的帮助下解决问题)。一个尚未解决的问题是Visual Studio中的IntelliSense没有任何第三方工具,如Visual Assist或Resharper C ++(这是UE4唯一受到良好支持的IDE)。在标题部分添加新的#include
时,IntelliSense会将第10行UCLASS()
加下划线,因为this declaration has no storage class or type specifier
。以此头文件为例:
#pragma once
#include "CoreMinimal.h"
#include "Components/StaticMeshComponent.h" // Broken when adding this line
#include "GameFramework/Actor.h"
#include "RotatingActor.generated.h"
UCLASS()
class UE419DEMO_API ARotatingActor : public AActor
{
GENERATED_BODY() // ERROR: "this declaration has no storage class or type specifier"
public:
ARotatingActor();
protected:
virtual void BeginPlay() override;
public:
virtual void Tick(float DeltaTime) override;
UPROPERTY(EditAnywhere)
UStaticMeshComponent *StaticMeshComponent; // The include is needed for this line here, because without the header file, IntelliSense doesn't autocomplete methods which belong to this class.
};
此文件编译完全正常,Visual Studio的任何一侧都没有任何构建错误,尽管UCLASS()
侧有红色下划线.cpp
和红线,因为class "UObject" has no member "BeginPlay"
。这在某种程度上是破坏性的,因为这个错误不是真正的错误,而是错误,因为Visual Studio无法识别宏UCLASS()
,它之前在第9行,现在在第10行。
那说我问我这种行为是否正常。我是否需要付钱(Visual Assist)或继续重新打开Visual Studio(这会扰乱我的编码流程并且还会窃取时间)来解决这个问题。有人有解决这个特定问题的方法吗?
答案 0 :(得分:0)
根据我的经验,这是正常的。我已按照说明设置VS,我仍然得到了强调。现在我只是忽略它们。