Skip to content

View视图

这一节我们会介绍引擎的另外一个概念-View。

概览:

View类似一种视图,让服务端能够对自身View内的事件传达给客户端。

每一个连接到服务器的客户端实体都将拥有一个View。

View与空间相关,每个View都能够设定在当前Space中独立的大小范围。

作用:

  1. 减少网络通讯的带宽。因为通讯都限制在View的范围内,所以对带宽起到一些节约的作用。

  2. 减少服务器的计算压力。由于View的存在,服务器上的很多计算也会限制于View内。

  3. 对客户端来说,只需要当前视图内的数据同步,减少了客户端的压力。

对应的API:

  • Entity.entitiesInView

  • Entity.getViewRadius、Entity.getViewHystArea

  • Entity.setViewRadius

说起View,必须要了解一下服务器上Witness的知识。

服务器上的Witness:

目击者。只有绑定了Witness的cell实体View才能产生作用,换句话来说witness就是客户端的一个cell代理,cellapp将View内的信息不断的通过Witness同步给客户端。

比如:服务端一个NPC被目击者目击时会调用实体的onWitness回调,服务端可以依赖于此特性降低CPU的消耗,当一个实体没有被目击时,用户可以停止它的任何行为。