项目中的问题与解决方案
发布日期:2021-06-30 19:38:18 浏览次数:3 分类:技术文章

本文共 1506 字,大约阅读时间需要 5 分钟。

问题1 资源释放

解决方案:

1 首先要求美术所有的图集下不要出现相同名的精灵,这个在最开始就应该告知美术,不然后期修改的时候,美术和程序都麻烦,命名应该遵循一个规范。只要每个精灵的名字都不一样,后面改精灵图的时候,程序这边就可以在代码中全局替换,快速高效,当人,如果精灵图名字有部分配置在配置表中,则需要手动去找出来然后修改了。

2 把图集进行整理,将专用性的精灵整理到专用的图集下,公用精灵则放到公用图集下,公用图集个数尽量在3个以下,对专用性的图集进行动态加载和释放。

问题2 界面的快速实现

解决方案:

1 让美术将界面制作成预设

2 编写一个工具,可将预设直接转换成代码(高端做法)

3 或直接加载美术的预设

问题3 降低draw call

解决方案:

只要物体的变化和材质相同,GPU就可以按照完全相同的方式进行处理,即可以把它们放在一个draw call中。draw call batching技术的核心就是可见性测试之后(可见性就是摄像机看的见的就渲染,看不见就不渲染),检查所有要绘制的物体的材质,把相同材质的分为一组(一个batch),然后把它们组合成一个物体(统一变换),这样就可以在一个draw call中处理多个物体了(实际上是组合后的一个物体)。综上,就是合并贴图材质,对可合并的材质对其ui设置相同的层(depth)

问题4 新手引导

解决方案:

针对新手引导一套框架,具备新手引导所需的常见的UI接口,新手引导走配置,节点管理、上报、执行等操作统一化。

问题5 UI风格统一问题

解决方案:

早起就应该制定好UI规范,程序这边封装好相应的规范UI创建接口,后续不是非常特殊的情况,都使用这些规范的接口进行UI创建,当然美术在出预设的时候,也必须遵循这些UI规范

问题6 UI层次问题

解决方案:

通过多个摄像机渲染,通过panel分层

问题7 分辨率适配问题

解决方案:

以1280x720为标准,计算出x和y的拉伸比

float screenFactorX = Mathf.Max( Screen.width*1.0f / Screen.height / (1280f / 720f), 1.0f);

float screenFactorY = Mathf.Max( (1280f / 720f) / (Screen.width*1.0f / Screen.height ),1.0f);

如果要搞一个铺满全屏的UI,则UI的宽高分别设为1280,720,然后对它的localScale进行缩放,x缩放screenFactorX ,y缩放screenFactorY

问题8 代码混淆

解决方案:

尽量不要使用函数名字符串(反射)

比如EventDelegate、HoTween、Invoke、协程、Animation帧事件。如果使用了字符串反射,则需要在混淆中过滤出来。

针对Animation的帧事件,可以专门写一个帧事件监听脚本(对此脚本不进行混淆),素有Animation帧事件都使用这个脚本进行事件监听

问题9 财富同步问题

解决方案:

前后端统一一个财富的操作协议,各个模块的财富变化,都通过该协议同步或加减,对于变化比较频繁的模块,可以考虑通过相应的协议返回同步的财富,不额外走同步协议

问题10 头像缓存问题

解决方案:

头像通过链接从远程下载后,会在本地可写目录下保存,并缓存在内存中(有一个头像管理器),每次需要创建头像,都首先从头像管理器内存中查找,如果没有,则从本地文件中查找,如果还没有,再根据链接去远程下载。本地头像需要定期清理,建议1天自动清理一次。

转载地址:https://linxinfa.blog.csdn.net/article/details/50909005 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:脚本打包
下一篇:unity自动打包经验

发表评论

最新留言

哈哈,博客排版真的漂亮呢~
[***.90.31.176]2024年04月17日 03时26分37秒

关于作者

    喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!

推荐文章