92. 2023-12-24周总结

  1. NodeCanvas
  2. 2019版本的项目升级2021无法打出包问题
  3. cdn热更新问题
  4. 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多个。

这里有两种解决方案:

  1. 把部分ab包挪到运行时再下载
  2. 调整打包策略,加大颗粒度,这种如果打包支持的话会比较简单

3. cdn热更新问题

发包的时候发现资源明明上传上去了,但是还是会下载到旧的资源,最后发现YooAsset升级之后记录版本号的文件名后缀改成了.version(之前是.bytes),导致版本文件被缓存了,这也是YooAsset升级带来的坑吧,之前踩了好几个了。修改cdn缓存策略之后问题解决。

4. URP下模糊效果

URP模糊下过比较坑,主要是比较难拿到相应的RT。在内置渲染管线下面用GrabPass就可以比较简单的拿到当前渲染的RT,然后进行模糊即可。但是URP下面只能对渲染队列(非透明,半透明,后处理)进行截断,不太好弄。我们美术同学还在探索中。