Unity开发指南:如何在Game界面上显示两个相机画面
Unity开发指南:如何在Game界面上显示两个相机画面
在Unity引擎中,Canvas和相机的设置是游戏开发中的重要环节。本文将详细介绍如何在Game界面上显示两个相机画面,包括Canvas的三种模式、相机深度、画面大小和位置的设置方法。
一、Game界面
1. Game界面到底显示的是什么呢?
答案:Game界面显示的是Display的内容。在Unity编辑器中,你可以在左上角选择你想显示的Display编号。
2. Display界面到底显示的是什么呢?
答案:Display界面显示的是相机里看见的东西。你可以在相机的设置中指定该相机显示的内容应该放到哪个Display上。
3. 简单逻辑
游戏开发中的基本流程是:使用相机拍摄到某个画面 → 这个画面被放置到Display中 → 在Game面板中选择显示的Display。
二、Game界面显示两个相机的内容
按照上述逻辑,一个相机只能选择一个Display,而Game面板一次只能显示一个Display。那么如何同时显示两个相机的画面呢?
初步过程:
- 建立两个相机
- 两个相机都设置为Display1
- Game界面选择Display1
但是这样设置后,就像两本书叠在一起,只能看到上面的封面。因此我们需要解决以下两个问题:
- 哪个界面在上面?
- 他们的大小是多少?
1. 相机深度
我们可以控制哪个相机显示在上面。在相机设置中,可以通过调整"深度"参数来实现。数值越大,显示的优先级越高。
图3 相机深度
例如,如果一个相机设置为0,另一个设置为-1,那么你将先看到设置为0的相机显示的内容。
2. 画面大小
两本书一样大,叠放在一起,那确实只能看见上面的,如果两本书一大一小,就能都看见了。
因此我们也需要控制画面的大小,如果我们两个相机显示的部分一样大,那就只能看见上面的,所以一般要把上面的设置小一点,下面的才能看见。
ViewportRect中的W和H就是控制宽高大小的。1就是全屏大小,0.5就是屏幕一半大小。。以此类推。(如图4所示)
备注:最大就是1,设置100还是1的样子。
图4 W和H
如果W和H都设置0.5,就是下面红色图片的样子。(如图5所示)
图5 H和W都设置0.5
3. 画面位置
我们不能让画面一直在左下角,我们肯定是需要改变画面位置的,ViewportRect中的X和Y,就是用来改变画面位置的。(如图6所示)
图6 X和Y
x为0的意思是屏幕从最左边长出来,y为0就是屏幕从最下面长出来,1就是从最右边再往右边,或者从最上面再往上(就看不见了),如果都是0.5(如图7所示)
(从中间往右长,从中间往上长)
图7 屏幕位置
三、Canvas的模式
Canvas可以理解为一张画布,Unity提供了三种显示模式:
- Screen Space - Overlay:将Canvas显示在所有UI元素的最上层,相当于将Canvas放在相机深度的最高处。
- Screen Space - Camera:可以选择一个特定的相机来显示Canvas,但该相机拍摄到的其他内容也会显示出来。
- World Space:将Canvas视为一个3D对象,相机可以像拍摄其他物体一样拍摄Canvas,距离不同会导致Canvas的大小变化。
图8 Canvas模式
四、Screen Space - Camera模式下选择相机
在Screen Space - Camera模式下,你可以选择一个相机来显示Canvas。在Canvas的设置中,可以直接拖拽一个相机到"Render Camera"字段中。
图9 Screen Space模式选相机
通过以上设置,你就可以在Unity中实现两个相机画面的同时显示,并根据需要调整它们的深度、大小和位置。