如何仅使用Visual Studio在UE4中进行编码?

时间:2018-04-04 20:44:30

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

过了一段时间,我想到在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(这会扰乱我的编码流程并且还会窃取时间)来解决这个问题。有人有解决这个特定问题的方法吗?

1 个答案:

答案 0 :(得分:0)

根据我的经验,这是正常的。我已按照说明设置VS,我仍然得到了强调。现在我只是忽略它们。