我正在谈论Unity3D中的相机设置。
我正在尝试确定是否可以(至少)更改屏幕截图中灰色区域的背景颜色。摄像机的限制可以通过编程方式更改。动机在于以下事实:游戏区域必须根据儿童或成人在玩而动态变化。屏幕巨大,超过83英寸。重新缩放游戏区域时,未绘制的区域是灰色且有点难看,我想知道您是否可以至少定义颜色,或者如果可能的话,还可以更好地定义图像。
您看到的屏幕截图是全屏模式下的屏幕截图,因此它包括所有像素。
在简短的文字和图像解释之后,让我们看一下技术细节的细节。这是我调整房间设计区域大小的方法:
public static void SetViewportCalibration()
{
var camera = Camera.main;
camera.pixelRect = new Rect(MinX, MinY, MaxX, MaxY);
}
是否可以设置新Rect(MinX, MinY, MaxX, MaxY)
之外的灰色区域的颜色?
答案 0 :(得分:3)
尝试创建另一台在其视图中没有对象且具有以下设置的相机:
清除标志:纯色
背景:选择一种颜色
ViewPort Rect::X = 0,y = 0,w = 1,h = 1,
深度:比其他摄像机小的值(将此摄像机的深度设置为0,将另一摄像机的深度设置为1)
此相机将作为屏幕的背景。
我希望我理解了这个问题:)
答案 1 :(得分:3)
有两种方法可以解决此问题。两种方式都使用两个相机。
第一种方式。创建第二个相机。第二个摄像机应比动态摄像机少Depth
。然后,第二个“背景”摄像机可以显示您想要的任何内容,例如单独的Skybox,单独的UI,其他场景内容等。
第二种方式。您的动态相机实际上并未动态调整大小。而是将相机渲染到Target Texture
。在材质中使用此纹理,然后将材质分配给Quad网格(最合适)。然后,该网格可以像在任何其他3D对象中一样在您的场景中使用,这意味着不仅可以定位它,还可以缩放它甚至旋转它。您添加的新相机可以具有自己的Skybox,UI等。
我会选择第二种方式。部分出于个人喜好,也因为听起来可能更适合您的情况并且更易于实现。您还可以实现更多效果,以获得额外的“哇”。