🎐 View视图
大约 1 分钟
View视图
这一节我们会介绍引擎的另外一个概念-View。
概览:
View类似一种视图,让服务端能够对自身View内的事件传达给客户端。
每一个连接到服务器的客户端实体都将拥有一个View。
View与空间相关,每个View都能够设定在当前Space中独立的大小范围。
作用:
减少网络通讯的带宽。因为通讯都限制在View的范围内,所以对带宽起到一些节约的作用。
减少服务器的计算压力。由于View的存在,服务器上的很多计算也会限制于View内。
对客户端来说,只需要当前视图内的数据同步,减少了客户端的压力。
对应的API:
Entity.entitiesInView
Entity.getViewRadius、Entity.getViewHystArea
Entity.setViewRadius
说起View,必须要了解一下服务器上Witness的知识。
服务器上的Witness:
目击者。只有绑定了Witness的cell实体View才能产生作用,换句话来说witness就是客户端的一个cell代理,cellapp将View内的信息不断的通过Witness同步给客户端。
比如:服务端一个NPC被目击者目击时会调用实体的onWitness回调,服务端可以依赖于此特性降低CPU的消耗,当一个实体没有被目击时,用户可以停止它的任何行为。