92. 2023-12-24周总结
- NodeCanvas
- 2019版本的项目升级2021无法打出包问题
- cdn热更新问题
- URP下的模糊效果
1. NodeCanvas
抽时间学习了下Unity插件NodeCanvas,发现他提供的功能还是挺强大的,实现了流程图、行为树、对话编辑这三种功能。
运行时可实时查看图的状态以及运行节点内部的状态,这样就可以非常方便的定位问题。
流程图和行为树这两个配合起来可以做挺多东西,包括AI系统,技能编辑器,剧情编辑器,甚至把DOTween封装成Action,就可以做出一个简单的动效编辑器了。
在用2021.3版引入的NodeCanvas的时候遇到个问题,Blackboard窗口无法增加变量,点击的时候会报WarningUnable to find style ‘ToolbarSeachTextField’ in skin ‘DarkSkin’ Used UnityEngine.GUIUtility
,通过搜索发现Unity修改了名字,具体可以查看这里
修复方案就是打开Styles.cs文件,把这两个地方Seach
改成Search
就可以了
2. 2019版本的项目升级2021无法打出包问题
2019的项目升级到2021之后打不出包,报这个错误:AAPT2 aapt2-4.0.1-6197926-linux Daemon #0: Unexpected error during link, attempting to stop daemon
,找了相关资料,原因是因为StreamingAsset文件夹内的文件太多了,超出了限制,看了下StreamingAsset下的文件确实有点多,有4000多个。
这里有两种解决方案:
- 把部分ab包挪到运行时再下载
- 调整打包策略,加大颗粒度,这种如果打包支持的话会比较简单
3. cdn热更新问题
发包的时候发现资源明明上传上去了,但是还是会下载到旧的资源,最后发现YooAsset升级之后记录版本号的文件名后缀改成了.version(之前是.bytes),导致版本文件被缓存了,这也是YooAsset升级带来的坑吧,之前踩了好几个了。修改cdn缓存策略之后问题解决。
4. URP下模糊效果
URP模糊下过比较坑,主要是比较难拿到相应的RT。在内置渲染管线下面用GrabPass就可以比较简单的拿到当前渲染的RT,然后进行模糊即可。但是URP下面只能对渲染队列(非透明,半透明,后处理)进行截断,不太好弄。我们美术同学还在探索中。