There are 2 audio listeners in the scene. Please ensure there is always exactly one audio listener in the scene.
是因为后来创建了一个camera,因为camera中自带一个组件Audio Listener。所以有两个camera就有两个audio listener导致报错。
一个简单的解决方法就是删掉其中一个camera。我把SelectMenu场景中的去掉了(以后如果需要再增加一个)。
这样之后,运行程序直接连canvas都找不到了,反正迟早都需要学习相机的调整。
切换到3d视角是这样的。
执行以后发现画布(canvas)是黑的
改了canvas的render形式以后,右边hierarchy中还是黑的。
此时main camera 是粉的,因为注册panel是粉的,这都不是问题,问题是play以后就都变成透明的了,要命了,机制的我重启了一遍,没用的!
把render model 改回overlay,看着没啥问题了,一执行还是直接gg(透明不显示)。覆盖模式,这种模式,一般用的比较多,它始终位于3D场景的最前面,会挡住3D场景中的物体(如果对应位置有UI)。在通常的渲染管线中,一般都是先画场景中的物体,最后画UI,所以这种模式下的UI会挡住3D场景中渲染出来的画面。Unity3D Canvas 的三种渲染模式 Screen Space - overlay, Screen Space - camera, World Space_unity canvas world space-CSDN博客
自己试了试,把canvas属性里面,最上面那个勾打上,就又出来了!
但是把,下次再执行的时候,这个勾就又没有了!
学了估计快两周了,这种问题现在解决其来也有目的了,RegPanelScript应该挂在注册panel上,不行该挂在cnavas上,gameObject.SetActive (false);这这句就是其消失的原因。
修改前:
修改后所有功能成功。RegPanelScript本来就在panel上,估计在引入切换脚本ResceneScript时,都是re开头的给多引了一次,总之,现在unity的编程和解决问题的能力经过两周的学习已经比较健全了!