- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我是 UE4 开发的新手,我学习过 Udemy 的虚幻引擎开发类(class)。我在一个 Actor 上创建了一个新组件,名为 PositionReporter,头文件为 PositionReporter.h
#pragma once
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "PositionReporter.generated.h"
UCLASS( ClassGroup=(Custom), meta=(BlueprintSpawnableComponent) )
class BUILDINGESCAPE_API UPositionReporter : public UActorComponent
{
GENERATED_BODY()
public:
// Sets default values for this component's properties
UPositionReporter();
protected:
// Called when the game starts
virtual void BeginPlay() override;
public:
// Called every frame
virtual void TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction) override;
};
PositionReporter.cpp 中的代码是
#include "PositionReporter.h"
// Sets default values for this component's properties
UPositionReporter::UPositionReporter()
{
// Set this component to be initialized when the game starts, and to be ticked every frame. You can turn these features
// off to improve performance if you don't need them.
PrimaryComponentTick.bCanEverTick = true;
// ...
}
// Called when the game starts
void UPositionReporter::BeginPlay()
{
Super::BeginPlay();
FString t = GetOwner()->GetActorLabel();
UE_LOG(LogTemp, Warning, TEXT("Position Reporter reporting for duty on %s"), *t);
}
// Called every frame
void UPositionReporter::TickComponent(float DeltaTime, ELevelTick TickType, FActorComponentTickFunction* ThisTickFunction)
{
Super::TickComponent(DeltaTime, TickType, ThisTickFunction);
// ...
}
如您所见,我现在正尝试在指向通过 GetObject() 检索到的 AActor 的指针上调用 GetName 函数。
但是,一旦我键入“GetObject()->”,就不会弹出自动完成(就像在视频中那样),当我手动添加“GetName()”时,我会收到编译器错误“指向不完整类的指针”类型不被允许”。
哪里做错了?我是否缺少进口商品?我已经将我的代码与 Ben 的 git 存储库进行了比较,但没有发现任何差异。我在虚幻编辑器 4.16.0 上!
我注意到另一件奇怪的事情:当我从虚幻引擎编辑器编译所有内容时,它编译并运行良好。但是当我用 VS 2017 编译它时,我得到了错误,而且我也没有得到自动完成,这真是太糟糕了。我错过了什么?
最佳答案
在 PositionReporter.h 中包含 Engine.h 解决了这个问题。
#pragma once
#include "Engine.h" // <- This
#include "CoreMinimal.h"
#include "Components/ActorComponent.h"
#include "PositionReporter.generated.h"
您需要给 Intellisense 一些时间...事实上,我关闭并重新打开解决方案以停止显示不存在的错误并提供自动完成功能。
注意: 正如其他帖子中提到的,此解决方案很适合智能感知自动完成,但并不是最好的解决方案,因为它将包含大量内容并大大增加编译时间。包含特定的 .h 文件会更好,但您需要知道要包含什么 .h,而您可能不知道。
我发现的最佳解决方案是放弃 Intellisense 并使用 Resharper 进行代码自动完成,它运行速度快,自动完成正确,并且您不需要包含任何额外的文件。
关于c++ - AActor *UactorComponent::GetOwner const - 不允许指向不完整类类型的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44219810/
嘿 stackoverflow 社区! 有点像编码的新手,所以请放轻松。 基本上,当我调用 getOwner 方法时,我试图让这段代码返回 owner。所有这些都在 Java 中! 这是我的代码: p
我是 C++ 和 UE 的新手。我尝试了一些简单的编程,但编辑器崩溃了。 #include "NewActorComponent.h" #include "Runtime/Engine/Classes
我尝试在 ReentractLock 类的子类中使用 getOwner 方法,我知道在包之外, protected 方法仅对子类可用。所以我希望 getOwner 方法可用于我的子类 MyLock。但
我正在尝试确定创建特定文件的用户,如下所示: string path = "C:\\TheFile.dat"; string user = System.IO.File.GetAccessContro
我有一些 Ember 集成测试需要访问商店。我一直在使用: Ember.getOwner(this).lookup("service:store"); 这很好用,但我想知道是否有更好的方法可以在集成测
在下面的代码中: using System; using System.Collections.Generic; using System.Linq; using System.Text; using
我想显示谷歌驱动器中此文件夹中的每个文件详细信息,但 .getOwner() 方法返回“DriveUser”。这些文件是由某人和我上传的。因此,如果您手动检查驱动器,您可以看到每个文件的上传者/所有者
我正在尝试使用 WMI 类 Win32_Process 来获取正在运行的进程的列表以及作为每个进程所有者的用户。使用 MSDN (MSDN) 中的枚举示例并简单地将 Win32_OperatingSy
我是 UE4 开发的新手,我学习过 Udemy 的虚幻引擎开发类(class)。我在一个 Actor 上创建了一个新组件,名为 PositionReporter,头文件为 PositionReport
本文整理了Java中com.cardshifter.modapi.cards.ZoneComponent.getOwner()方法的一些代码示例,展示了ZoneComponent.getOwner()
我需要主人提供一些便利。我下面的演示脚本将首先在本地查找所有者的proc,然后执行相同的操作,但是会在同一框中调用命令: cls write-host 'LOCAL CALL: ' $procs =
本文整理了Java中org.apache.hadoop.yarn.security.client.YARNDelegationTokenIdentifier.getOwner()方法的一些代码示例,展
我是一名优秀的程序员,十分优秀!