热门标签 | 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天自动清理一次。








推荐阅读
  • 本文详细记录了在基于Debian的Deepin 20操作系统上安装MySQL 5.7的具体步骤,包括软件包的选择、依赖项的处理及远程访问权限的配置。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 1.如何在运行状态查看源代码?查看函数的源代码,我们通常会使用IDE来完成。比如在PyCharm中,你可以Ctrl+鼠标点击进入函数的源代码。那如果没有IDE呢?当我们想使用一个函 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • 本文深入探讨了如何通过调整InnoDB的关键配置参数来优化MySQL的随机IO性能,涵盖了缓存、日志文件、预读机制等多个方面,帮助读者全面提升数据库系统的性能。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • MySQL缓存机制深度解析
    本文详细探讨了MySQL的缓存机制,包括主从复制、读写分离以及缓存同步策略等内容。通过理解这些概念和技术,读者可以更好地优化数据库性能。 ... [详细]
  • PHP 5.5.0rc1 发布:深入解析 Zend OPcache
    2013年5月9日,PHP官方发布了PHP 5.5.0rc1和PHP 5.4.15正式版,这两个版本均支持64位环境。本文将详细介绍Zend OPcache的功能及其在Windows环境下的配置与测试。 ... [详细]
  • 深入解析 Apache Shiro 安全框架架构
    本文详细介绍了 Apache Shiro,一个强大且灵活的开源安全框架。Shiro 专注于简化身份验证、授权、会话管理和加密等复杂的安全操作,使开发者能够更轻松地保护应用程序。其核心目标是提供易于使用和理解的API,同时确保高度的安全性和灵活性。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 本文介绍了Linux系统中的文件IO操作,包括文件描述符、基本文件操作函数以及目录操作。详细解释了各个函数的参数和返回值,并提供了代码示例。 ... [详细]
  • 本文详细介绍了如何解决Uploadify插件在Internet Explorer(IE)9和10版本中遇到的点击失效及JQuery运行时错误问题。通过修改相关JavaScript代码,确保上传功能在不同浏览器环境中的一致性和稳定性。 ... [详细]
  • FinOps 与 Serverless 的结合:破解云成本难题
    本文探讨了如何通过 FinOps 实践优化 Serverless 应用的成本管理,提出了首个 Serverless 函数总成本估计模型,并分享了多种有效的成本优化策略。 ... [详细]
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社区 版权所有