一、突然想搭建一个Unity多视角窗口了,于是马上想,马上做了一个。
原理:摄像机是 Unity 中的一个核心组件,用于捕获场景中的图像。每个摄像机都有一个 Target Texture 属性,可以指定一个 Render Texture。当 Target Texture 被设置时,摄像机不再直接渲染到屏幕,而是渲染到指定的 Render Texture。这使得摄像机的输出可以被用作纹理资源。
二、搭建步骤
前期准备:场景内先新建好一个正方体和一个球体,两者相互离远一些,然后新建设置一下小球的图层
1. 创建 Render Texture:
- 在项目视图(Project)中,右键点击,选择 Create > Render Texture 来创建一个新的 Render Texture。
- 你可以命名这个 Render Texture,比如 SecondaryCameraTexture。
在这里注意:贴图大小和维度一般不变,一般都是2D的且大小256*256
2. 设置第二个摄像机:
- 创建一个新的摄像机。
Unity小知识:创建新摄像机的时候,注意一下调节摄像机的深度,Unity中默认创建新摄像机的深度好像是依次递增的,就是从-1,0,1,2......这样上去的,也就是说其在GPU上的渲染优先级依次递增。所以为了game视图下的主摄像机视角不变,得修改一下渲染深度,新建摄像机深度设为-2。
- 在摄像机的检查器(Inspector)面板中,将 Target Texture 设置为你刚刚创建的 Render Texture。
注意:这里也设置一下新建摄像机的剔除遮罩,仅需勾选你要显示的相关图层,这样可以极大的减少GPU的渲染消耗。同时,把主摄像机里面的剔除遮罩也去除小球层的勾选,这样的话,两种图层的东西就不会在两个摄像机视角下同时显现。
3.创建UIcanves:
- 在层级视图(Hierarchy)中,右键点击,选择 UI > Canvas 来创建一个新的 Canvas。
- 在 Canvas 下,创建一个 Raw Image(右键点击 Canvas,选择 UI > Raw Image)。
4. 设置 Raw Image:
- 选择 Raw Image,在检查器中,将 Texture 属性设置为你的 Render Texture。
- 调整 Raw Image 的 RectTransform 属性来设置它在屏幕上的位置和大小,这样就可以在主摄像机的视角中显示第二个摄像机的视角。
当然,如果你需要多个摄像机视角,你可以尝试重复以上操作步骤,再调节每一个Raw Image 在UI面板上的位置。这样就相当于有一个多摄像机显示的监控中控台了,哈哈哈哈哈哈哈。