Unity,更改场景的显示摄像头和Canvas中的目标显示C#

问题描述:

我有2个摄像头和1个画布,我想在按下按钮时将场景的显示更改为第二个摄像头,并且在同时,将画布的目标显示更改为第二台摄像机,并使用C#。Unity,更改场景的显示摄像头和Canvas中的目标显示C#

我知道我必须使用GetComponent<Camera>GetComponent<Canvas>但我不知道如何设置这两个索引。

任何帮助将不胜感激。

+0

这似乎是它可能更适合于[GameDev(HTTPS://gamedev.stackexchange .com/help/on-topic)StackExchange网站。 – GoBusto

+0

@GoBusto,谢谢,我会研究一下。如果有人可以帮忙,我会在这里等待,如果不是的话,我会在那里尝试。 –

+0

我在这里和GameDev上看[tag:unity3d]标签。 GameDev仍然在找出在编程问题上划出界限的地方,目前它在“如果它与游戏开发相关,在这里很好”,虽然在一年前这样的问题(包括这一问题)将被重定向到SO,但是相当宽松。我会根据我先看到的地方回答它(当然,假设我可以)。 – Draco18s

而不是更改索引:只需禁用一个摄像头并启用另一个。浪费GPU周期渲染无法看到的东西(这是第二台活动摄像机将会执行的操作)毫无意义。

至于更改画布目标:

改变画布的worldCamera属性,如:

canvasGO.GetComponent<Canvas>().worldCamera = cam2.GetComponent<Camera>(); 
+0

这是一个关于启用和禁用相机的好处,我以前见过它,但我没有想到你的观点,谢谢。 –

+1

请注意,您可以启用/禁用组件本身,而不仅仅是游戏对象。在某些情况下,这可能更可取。我知道Canvas的东西,禁用画布组件的速度会更快。 [来自Unity团队的伟大谈话](https://youtu.be/n-oZa4Fb12U)。 – Draco18s