vault backup: 2024-10-12 17:19:45

This commit is contained in:
2024-10-12 17:19:46 +08:00
parent ff94ddca61
commit 244c0c52f6
960 changed files with 31348 additions and 10 deletions

View File

@@ -0,0 +1,37 @@
# NotReplicated
- **功能描述:** 跳过复制。这只会应用到服务请求函数中的结构体成员和参数。
- **元数据类型:** bool
- **引擎模块:** Network
- **限制类型:** Struct members
- **作用机制:** 在PropertyFlags中加入[CPF_RepSkip](../../../Flags/EPropertyFlags/CPF_RepSkip.md)
- **常用程度:** ★★★
只用在结构成员中指定struct中的某个属性不复制否则默认就都会复制。这个用于排除掉结构中的某属性。
## 示例代码:
```cpp
USTRUCT(BlueprintType)
struct FMyReplicatedStruct
{
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
FString MyString_Default;
UPROPERTY(EditAnywhere, BlueprintReadWrite,NotReplicated)
FString MyString_NotReplicated;
};
UCLASS(Blueprintable, BlueprintType)
class INSIDER_API AMyProperty_Network :public AActor
{
public:
GENERATED_BODY()
UPROPERTY(EditAnywhere, BlueprintReadWrite, Replicated)
FMyReplicatedStruct MyStruct_Replicated;
};
```
其中MyStruct_Replicated会复制但是其中的MyString_NotReplicated不会复制。

View File

@@ -0,0 +1,5 @@
# RepRetry
- **功能描述:** 只适用于结构体属性。如果此属性未能完全发送举例而言Object引用尚无法通过网络进行序列化则重新尝试对其的复制。对简单引用而言这是默认选择但对结构体而言这会产生带宽开销并非优选项。因此在指定此标签之前其均为禁用状态。
- **元数据类型:** bool
- **引擎模块:** Network

View File

@@ -0,0 +1,39 @@
# Replicated
- **功能描述:** 指定该属性应随网络进行复制。
- **元数据类型:** bool
- **引擎模块:** Network
- **作用机制:** 在PropertyFlags中加入[CPF_Net](../../../Flags/EPropertyFlags/CPF_Net.md)
- **常用程度:** ★★★★★
## 示例代码:
记得要在cpp代码中相应添加GetLifetimeReplicatedProps函数
```jsx
UCLASS(Blueprintable, BlueprintType)
class INSIDER_API AMyProperty_Network :public AActor
{
public:
GENERATED_BODY()
public:
UPROPERTY(EditAnywhere, BlueprintReadWrite)
int32 MyInt_Default = 123;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Replicated)
int32 MyInt_Replicated = 123;
UPROPERTY(EditAnywhere, BlueprintReadWrite, Replicated)
FMyReplicatedStruct MyStruct_Replicated;
};
void AMyProperty_Network::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyProperty_Network, MyInt_Replicated);
DOREPLIFETIME(AMyProperty_Network, MyStruct_Replicated);
}
```
示例效果就不发了,这个是基本的网络标记。

View File

@@ -0,0 +1,35 @@
# ReplicatedUsing
- **功能描述:** 指定一个通知回调函数,在属性通过网络更新后执行。
- **元数据类型:** string="abc"
- **引擎模块:** Network
- **作用机制:** 在PropertyFlags中加入[CPF_Net](../../../../Flags/EPropertyFlags/CPF_Net.md), [CPF_RepNotify](../../../../Flags/EPropertyFlags/CPF_RepNotify.md)
- **常用程度:** ★★★★★
ReplicatedUsing 可以接受无参数的函数或是带一个参数的函数携带旧值。一般在OnRep函数里做一些开启关闭的相应操作比如enabled的复制就会触发相应的后续逻辑。
## 测试代码:
```jsx
UCLASS(Blueprintable, BlueprintType)
class INSIDER_API AMyProperty_Network :public AActor
{
public:
GENERATED_BODY()
protected:
UFUNCTION()
void OnRep_MyInt(int32 oldValue);
UPROPERTY(EditAnywhere, BlueprintReadWrite, ReplicatedUsing = OnRep_MyInt)
int32 MyInt_ReplicatedUsing = 123;
};
void AMyProperty_Network::GetLifetimeReplicatedProps(TArray<FLifetimeProperty>& OutLifetimeProps) const
{
Super::GetLifetimeReplicatedProps(OutLifetimeProps);
DOREPLIFETIME(AMyProperty_Network, MyInt_ReplicatedUsing);
}
```
在蓝图中等价于RepNotify的作用。
![Untitled](Untitled.png)

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB