查看: 428|回复: 6

[游戏性指南] 【属性复制 | Unreal Engine】

[复制链接]

1

主题

342

帖子

7万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
75866
发表于 2016-6-27 17:00:06 | 显示全部楼层 |阅读模式


概述
每个 actor 都保有一份属性列表,而每个属性都可以被标记,以表示复制到客户端。当服务器端的变量值发生改变时,服务器将向客户端发送更新后的值。而客户端的变量值也可能发生变化 - 这时会使用新值去覆盖原有值。属性更新只能来自于服务器,客户端永远不会向服务器发送属性更新。

有些属性是默认复制(方位、旋转、所有者等)。这些属性通常被架构用来完成基本的多人游戏工作。在此基础上,您可以根据需要标记更多的属性进行复制。

Actor 属性复制是一个可靠过程。也就是说,客户端版本的 Actor 属性将最终反映服务器上的值 - 但可能忽略某些单独的属性值变化。
设置属性用于复制
要复制一个属性,您需要做一些准备工作:在 actor 类标头中的属性定义部分,您需要确保将 replicated 关键字作为 UPROPERTY 声明的一个参数:

class ENGINE_API AActor : public UObject{    UPROPERTY( replicated )    AActor * Owner;};
在 actor 类的实现中,您需要实现 GetLifetimeReplicatedProps 函数:

void AActor::GetLifetimeReplicatedProps( TArray FLifetimeProperty   OutLifetimeProps ) const{    DOREPLIFETIME( AActor, Owner );}
在 actor 的构造函数中,确保将 bReplicates 标志设置为 true:

AActor::AActor( const class FPostConstructInitializeProperties  PCIP ) :Super( PCIP ){     bReplicates = true;}
差不多就是这样。现在,成员变量 Owner 将同步到所有连接的客户端,并应用于当前实例化的此 actor 类型的所有复本(此时为基本 actor 类)。



   



   
【虚幻4翻译文档-属性复制 | Unreal Engine】[虚幻4中文文档]



      




   


      相关页面

  




       复制对象引用








      条件属性复制








      RPC




回复

使用道具 举报

0

主题

853

帖子

2858

积分

vip会员

Rank: 1

积分
2858
发表于 2016-7-2 20:25:43 | 显示全部楼层
看看有近期需要的
回复 支持 反对

使用道具 举报

0

主题

847

帖子

2836

积分

vip会员

Rank: 1

积分
2836
发表于 2016-7-4 02:59:59 | 显示全部楼层
好东西都要支持, 谢谢了
回复 支持 反对

使用道具 举报

0

主题

836

帖子

2730

积分

vip会员

Rank: 1

积分
2730
发表于 2016-7-4 12:42:51 | 显示全部楼层
哈哈  找i了好久
回复 支持 反对

使用道具 举报

0

主题

930

帖子

3057

积分

vip会员

Rank: 1

积分
3057
发表于 2016-7-26 11:36:10 | 显示全部楼层
我知道楼主一向黑~~~~~
回复 支持 反对

使用道具 举报

0

主题

940

帖子

3104

积分

vip会员

Rank: 1

积分
3104
发表于 2016-7-26 12:26:20 来自手机 | 显示全部楼层
这个怎么用呢
回复 支持 反对

使用道具 举报

0

主题

856

帖子

2807

积分

vip会员

Rank: 1

积分
2807
发表于 2016-7-26 19:55:57 来自手机 | 显示全部楼层
要查看本帖隐藏内容请回复
回复 支持 反对

使用道具 举报

*滑块验证:
您需要登录后才可以回帖 登录 | enginedx注册

本版积分规则

 
 



邮件留言:


 
返回顶部