UE4 C++ bReplicates 未在 Object 类中定义

问题描述

我创建了 CPP UObject 类,以使其可复制。 我在教程中找到了代码,但它是在旧版本的 UE4 上编写的,我认为这可能是它不起作用的原因。 我有这个标题

import os
path = r'C:\Users\PacY\Documents'
FileList = []

extensions = ['.pdf','.docx','.jpg']


for FileList in os.listdir(path):
    print("\nFiles: ",FileList)

还有这个 CPP 文件

#pragma once

#include "CoreMinimal.h"
#include "UObject/NoExportTypes.h"
#include "Replicatedobject.generated.h"

UCLASS(Blueprintable)
class GOGOCPP_API UReplicatedobject : public UObject
{
    GENERATED_BODY()
public:

    UReplicatedobject();

    virtual bool IsSupportedForNetworking() const override { return true; };

    void GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const override;

};

但是 Visual Studio 大纲 #include "Replicatedobject.h" #include "Net/UnrealNetwork.h" UReplicatedobject::UReplicatedobject() { bReplicates = true; } 和编译写我 bReplication 没有定义 我正在使用 UE4.26,我很有趣,是我的代码有问题,还是 UE4.26 削减了在 UObject 中使用 bReplicates 的能力,而它在此类中确实未定义?

解决方法

第一个复制类是AActor。要复制 UObject,它需要有一个所有者 (AActor),并且必须实现以下功能:

 virtual void GetLifetimeReplicatedProps(TArray< FLifetimeProperty > & OutLifetimeProps) const override;
 virtual bool IsSupportedForNetworking() const override { return true; }
 virtual bool ReplicateSubobjects(class UActorChannel *Channel,class FOutBunch *Bunch,FReplicationFlags *RepFlags) override;

这里的例子: https://jambax.co.uk/replicating-uobjects/

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...