比如7.2示例demo中,moveComponent设置了unit的position和rotation之后publish了一个修改值的event
测试了下效率,这个函数消耗非常大,100次就要20多ms,而且看逻辑应该只需要在客户端执行,那么就需要一个能够快速执行,区分是服务器还是客户端的方法
现在用的是用Entity.DomainScene().SceneType进行判断
看了一下是一层一层去找父节点,如果层级很多,可能会遇到效率问题。简单测试了一下,示例demo中,这个方法的执行大概和1次invoke的消耗类似,也属于相对比较大的消耗了(和直接读取一个bool值进行判断,或者宏变量直接在编译阶段把服务端的代码删除相比)
另外就是这个方法没办法直接判断服务器还是客户端,如果加了新的SceneType需要手动改判断条件。
问一下各位大佬,一般应该用什么方法高效率得获取是在服务器还是客户端?(可能会在服务器update中高频进行判断)或者需要修改代码结构?
现在想法是自己在entity里写一个变量,在设置parent的时候遍历自己的child进行一次赋值,用的时候直接读取就行,这样科学么?