热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

项目中的问题与解决方案

问题1资源释放解决方案:1首先要求美术所有的图集下不要出现相同名的精灵,这个在最开始就应该告知美术,不然后期修改的时候,

问题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天自动清理一次。








推荐阅读
  • php怎么设置多个脚本(php怎么设置多个脚本编辑)
    导读:很多朋友问到关于php怎么设置多个脚本的相关问题,本文编程笔记就来为大家做个详细解答,供大家参考,希望对大家有所帮助!一起来看看吧!本文目录一览: ... [详细]
  • 利用cacti添加mysql监控_cacti监控mysql  mysql复制
    监控mysqlmysql复制5.1.1主机配置1台cactiserver10.10.54.1593台msyqlservermaster:10.10.54.157sla ... [详细]
  • 1套接字发展史及发展套接字起源于20世纪70年代加利福尼亚大学伯克利分校版本的Unix,即人们所说的BSDUnix。因此,有时人们也把套接字称为“伯克利套接字&rdquo ... [详细]
  • 开发笔记:Webpack5 搭建 Vue3 + TS 项目
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Webpack5搭建Vue3+TS项目相关的知识,希望对你有一定的参考价值。 ... [详细]
  • 为何存在requests库,pycharm依然报错解决方法
    今天在使用pycharm的时候,用到了第三档库requests,提示有错误,报错显示Nomodulenamedrequests,于是请教了大神们,然后让我在pycharmconso ... [详细]
  • SpringCloud之Bus(消息总线)
    说明:关于SpringCloud系列的文章中的代码都在码云上面地址:https:gitee.comzh_0209_javaspringcloud-ali ... [详细]
  • 安装ha软件一、安装软件最稳定的版本是5.4.0,优先安装稳定版本5.4安装依赖于包base.data,cluster的man包安装失败原因是缺少base.data包安装所有clus ... [详细]
  • 小记hbase数据库java API 常用方法及案例
    HBaseAdmin类:管理hbase数据库的表信息,‘创建表、删除表、列出表选项、使表有效/无效、添加或删除列簇’;  ... [详细]
  • openstack安装和使用
    前言本篇文章会介绍openstack的安装、openstack各组件的配置和功能、还会演示openstack云主机的创建流程,整篇文章花费一天时间完成, ... [详细]
  • 看这篇之前,如果没有看过之前的文章,移步拉到文章末尾查看之前的文章。回顾先捋一下,之前我们实现的Vue类,主要有一下的功能:属性和方法的代理proxy监听属性watcher事件对于 ... [详细]
  • 点击:【第一章:Java开发岗:基础篇】计算机基础问题、HashMap、Fail-safe机制Fail-fast机制、Synchronized、ThreadLocal、AQS、线程 ... [详细]
  • 开发笔记:网络协议系列八传输层TCP之可靠传输
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了网络协议系列八-传输层-TCP之可靠传输相关的知识,希望对你有一定的参考价值。 ... [详细]
  • ARP攻击,是针对以太网地址解析协议(ARP)的一种攻击技术一招解决arp攻击。此种攻击可让攻击者取得局域网上的数据封包甚至可篡改封包,且可让网络上特定计算机或 ... [详细]
  • 本文目录一览:1、python、什么是内建函数? ... [详细]
  • Linux DNS
    libnss_files.solibnss_dnslibnss_ldap展现的就是一个配置文件etcnsswitch.conf?查看这个文件这个files就是通过libnss_fi ... [详细]
author-avatar
mobiledu2502908023
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有