62. 2023-05-28周总结
- 篮球项目转小程序
- ParticleForUGUI问题
1. 篮球项目转小程序
通用修改
【x】删除不必要的插件(减少编译的wasm大小)
【x】配置表改用二进制(减少GC,加快加载速度)
【x】使用YooAsset替换Addressable(YooAsset用着更顺手,同时打包收集策略更好点)
【x】静态图片和动态图片整理(图集比较乱)
【x】动态图片懒加载(改动比较大,很容易出bug)
【x】UI框架支持资源卸载webgl修改
【x】服务器和客户端支持websocket
【x】打webgl包测试
【x】Http访问方式修改(webgl不支持System.Net下的Http)
【x】资源释放
【 】音频修改
【 】打包小程序测试
【 】图片压缩
【 】优化性能
过程中的问题
Shader找不到问题
历史原因,这块代码不太好同步,写的时候直接用Shader.Find来做,但是会找不到,将Shader放到Unity Graphics配置中解决Mono找不到问题
加载某个预制体的时候出现大量Mono找不到问题,暂时还没定位到原因UI异步打开中,又调用关闭的问题
UI因为是异步加载,有可能加载中的时候又调用关闭,这时候关闭会不成功,之后的打开的加载回调了又会被加载出来,加了一个closing的flag把问题解决。这种就是典型的同步改异步加载会出现的问题。Task.Delay问题
WebGL不支持Task.Delay,表现得效果就是await不会返回,且没有任何错误。Task系列函数WebGL有些支持有些不支持,不知道有没有某个地方能汇总下这些函数。看不见堆栈问题,开启异常全部日志
调试得过程中发现有个报空就只有一行文本,不知道哪里有错,修改这个设置之后打出来的包就能看到消息错误堆栈了,但会影响性能和包体,所以release不能开。
ParticleForUGUI问题
美术用3D特效做了一个扫光特效,然后发现放到UI里面没有扫光效果。我们用的是ParticleForUGUI来把3D特效集成到UI里面的。测试过程中发现ParticleForUGUI会自动关闭3D粒子的Render,而我们的扫光效果用了一个Custom Data,如果Render关了,就不会把Custom Data数据发送给Shader,导致扫光失效了。搜了下相关issue,发现已经有人提问了,但是也没给出一个比较明白的解决方案,所以先放弃继续走这条路,扫光改用UIEffect来实现。