王者荣耀复刻项目 UI篇
跳字优化
对象池优化
制作一个对象池来缓存跳字专用的prefab。
1 | // ---------整体流程方法名(以下只展示方法签名)--------- |
显示队列
实现思路和TipsWindow差不多,就是维护一个队列,然后给定一个频率,按频率去执行跳字,我这里设置的200ms飘一次字。
把上面的包装好后,外部只要调用血条ItemHP.AddHPJumpNum(JumpNum jn, JumpUpdateInfo jui)
就行了。
效果如下:
小地图
UI映射轴向一致
实现,肯定是用逻辑位置去映射到小地图上的位置,然后在位置上展示图标就行了。
然后关键来了,怎么映射最优呢?
① 将地图的中心点和小地图的中心点设置为原点坐标。
② 确保地图与小地图,所实际使用的2个轴向保持一致。
③ 确保以上2点后,映射的时候直接使用local位置即可。
好处很多,不单是换算方便,因为地图原点坐标在地图中心点,所以打出log的也会直观很多。
UI图片和地图资源比例保持一致
这样可以直接将地图逻辑位置坐标 *scaler 缩放就实现了位置映射。
聊天系统 名字标签
一般有2种方式实现,都比较简单。
第一种是使用在发往服务器的消息包中放入玩家的id、英雄的id信息,再去服务器拼接msg字符串。
第二种是直接在发往服务器的消息包的msg字符串本地拼接,因为在客户端本机相关的数据很全,直接拼接好再发送就可以了。
用第二种节省服务器的操作,属于是一个容易想到的小优化。
最终效果:
关闭窗口检测
使用gameObject.activeSelf
并不能获取到正确的值,因为直接把父物体给SetActive(false)
了,子物体其实还是activeSelf = true
的状态。
这种情况,要使用ameObject.activeInHierarchy
来判断。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CodingCodingK Blog!