前言
更新了URP之后,一直苦于URP和FGUI不能同时使用
之前写了几篇文章,都是在编辑器内生效,实测打包到Android平台没有用
头疼了好久,终于在Unity论坛上找到这篇回帖
Unity forum
写到Unity URP的Camera Stack已经在测试阶段了
一切指向github上这个pr
看了下时间,是19年9月提交的...之前一直没翻到,国内也没有任何资料就比较尴尬
继续查看了一下,发现已经合并到master里面了
也就是说最新的URP 8.0.0版本就有这个Camera Stack功能
于是赶紧clone下来
导入到unity package manager
URP8.0.0版本在Uniry中是不会显示出来的,因此只能从本地导入
打开package manager面板,点击左上角的加号
选择从本地磁盘导入(Add package from disk)
找到clone下来的SRP,按照依赖顺序导入
- com.unity.render-pipelines.core
- com.unity.render-pipelines.shadergraph
- com.unity.render-pipelines.universal
导入后,如果没有反应可以尝试重新启动一下工程
等待Unity加载这些包,加载完毕后
Package Manager里面会显示使用了URP的8.0.0(local)本地版本
此时我遇到报错提示
UniversalRenderPipelineCameraEditor.cs
404行OnDisable
方法未找到
使用VS打开这个脚本,查看是继承的Editor
基类没有OnDisable
方法
根据上下文的逻辑可以判断这里是做一些析构清理操作,于是我先随便改成OnDestroy
看看效果
Ps. 也许这样改不太科学,但是先做做测试,看看最关键的Camera Stack能否使用
改完后发现没有报错了,相机组件也成功刷出了Stack
的选项
使用 Camera Stack 功能
clone下来的SRP工程,可以进入到如下目录查看说明文档
com.unity.render-pipelines.universal/Documentation~
其中专门有一个文档camera-stacking.md
介绍了这个功能
我们可以看到,之前我一直疑惑的相机的第一个属性Render Type
终于可以进行下拉选择了
- base 标准的相机模式
- overlay 覆盖模式,类似之前的Depth Only操作
- ui(这个实际上还没有,但是在youtube的预览视频里面有,目前对我而言作用不大)
要想一个相机画面覆盖在另外一个相机上的操作步骤如下:
1. 主相机Render Type
设置为Base
2. 覆盖相机设置为Overlay
,并设置Rendering
中的Culling Mask
为需要覆盖的层(类比以前的depth方式)
3. 回到主相机,在Stack
项中点击加号,添加覆盖相机(只有设置为Overlay
的相机可以被添加到Stack
中)
如果有多个需要覆盖显示的相机,拖动他们的排序,就是之前控制Depth
值的操作了
使用FGUI
导入FGUI的包,在Unity 2020中,已经移除了Asste Store
提示在Package Manager
中选择My Asstes
Unity这么做可能是想让包的管理更加统一一点吧,但是目前Package Manager
中无法浏览线上的资源
只能先在网页中添加到My Asstes
后,再到Package Manager
中添加
绕来绕去的还是挺麻烦(最近一两年Unity的变动实在太大)
添加了FGUI后,我直接在测试场景中进行修改,将显示UI的Stage Camera
设置为Overlay
再添加一个主相机,加上3D场景,终于可以使用FGUI了
模拟器测试
使用2020.1a22版本打包Android APK
在夜神模拟器上进行测试,完全Ok,终于可以正常使用URP+FGUI了
为了测试,我还顺便添加了Volume的Post Processing后期效果
后记
目前只是单独使用FGUI,如果是在ET框架中通过代码来打开FGUI界面,还需要设置Camera
组件的Render Type
感觉还是有点复杂的哦,不过好歹还是让我看到点曙光
目前的Camera Stack
还不是正式版本(毕竟都没显示出来...)
希望能够早日更新,使用起来更加方便吧,这里挺赞成那篇帖子中一个网友的观点(稍微翻译一下)
为什么叫'Unity'?应该是把所有好用的,有趣的东西都'集中'起来,而不是把糟糕的东揉成一团
说句实话,从3.5版本开始用Unity这么多年了,虽然现在确实有些东西不是那么便利,不是那么那么人性化,但我们还是可以看到Unity的开发者们也在不断努力。让Unity成为一个集大成者,这应该也就是这个引擎的初心吧
Comments | 2 条评论
辛苦了我的鹰,但我还是要说:mcio咕咕咕!
@锟斤拷锟斤拷一锟斤拷锟斤拷锟斤拷锟斤拷 13号不是更了一次了嘛
最近应该会持续更新的