40. 2022-12-18周总结

这周按部就班的几件事情。

1. 休闲游戏转微信小游戏

上周遇到的浏览器崩溃问题

原因是单个ab包过大(一个ab包有200多MB),分开打包之后问题修复

变现不对问题

Shader变体问题,做了一个Shader变体收集器,loading的时候warmup下,问题解决。

小游戏运行报video.canPlayType is not a function

官方是支持视频播放的,但是还是报这个错误,不知道原因,可能是自己使用上的问题,只能把游戏中的播放视频给关了。

内存问题

这个比较头大,目前主要做了几件事情:

  1. 合并图集以及图片压缩(MaxSize砍半)
  2. 3D场景删除看不见的物体
  3. 使用转换工具的压缩纹理

有一定效果,但是ios高性能还是必崩溃,android高端机还好能进去玩一会。

实时看了下内存,目前ios高性能模式下,崩溃的临界值在1.4G,但是编译完之后内存已经到了1.1G(没有分包),也就是给游戏预留的内存就只有300MB了,这就很难优化了

同时对比了下其他情况:

  • 非高性能模式下,编译完之后的内存到700MB,但是loading的时候内存飙升到1.1G(比较奇怪),而高性能模式loading的时候内存变化不是特别大
  • 高性能模式下的足球小游戏再编译完之后内存在900MB(分包),所以如果我们分了包,内存大概还能空出来200MB,但是500MB感觉优化还是有点难度

一整周都在尝试内存方面,但是目前还没有比较好的突破口

2. 3D项目

技能改版:

这周自己主要在做技能重构上面的3D模型技能表现上,目前普通攻击的基本流程以及基本特效都已经搞定,预计下周可以支持到现有结构的所有功能。

另外一个同事在做重构之前的界面动效,主要是UI,飘字,血条动效,后面还需要把这一块合并到现有的重构版本里面。其中一个出手顺序队列,之前做的根本就不对,验收也验的不对,做动效的时候才发现,导致这一块延期严重。

渲染问题

光照贴图问题

我们的贴图支持烘培,但是打到手机里面一直跑的还是实时渲染的代码,最后定位到是变体的原因,包里的Shader没有LIGHTMAP_ON关键字。最后通过修改Graphics下的Lightmap Modes为Custom问题解决:

另外这个Shader放在另外一个项目中进行烘培表现上会有问题,需要再看看。

摄像机渲染到RenderTexture层级不对问题

在使用RT做两个摄像机的镜头叠加的时候发现渲染到RenderTexture的摄像机层级不对,比如模型A应该在B前面的,但是渲染到RT之后发现模型A在B后面。

最后发现原因是因为动态创建的RT没有设置深度缓存大小,导致按照渲染队列的顺序渲染模型,先渲染A,后渲染B,创建RT的时候设置深度缓存大小之后问题修复。

Unity给模型新加材质问题

目前我们的模型会有两个材质,一张脸、另外一个是身体。目前我们特效想再Unity动态增加个材质来对身体进行发光处理,但是发现新加的材质只能对脸生效。这个暂时还没找到解决方案

其他

最近公司阳的人越来越多了,对于家里有小孩、老人、孕妇的复杂家庭来说还是挺怕的,一人如果得了那就得好一阵子折腾了。