c# - 在 Unity3D 中为超出相机限制(视口(viewport)矩形)的区域设置背景

标签 c# unity3d background camera

我说的是 Unity3D 中的相机设置。

我想弄清楚是否可以(至少)更改屏幕截图中灰色区域的背景颜色。相机的限制以编程方式更改。动机在于游戏区域必须根据是 child 还是成人在玩耍而动态变化。屏幕很大,超过 83 英寸。重新缩放播放区域时,未绘制的区域是灰色的并且有点难看,我想知道您是否可以至少定义颜色,或者如果可能的话最好用图像。

您看到的屏幕截图是全屏模式下的屏幕截图,因此它包括所有像素。

enter image description here

在文字和图片的简短解释之后,让我们来看看具体的技术细节。这是我调整房间设计区域大小的方式:

public static void SetViewportCalibration()
{
    var camera = Camera.main;
    camera.pixelRect = new Rect(MinX, MinY, MaxX, MaxY);
}

是否可以在新的 Rect(MinX, MinY, MaxX, MaxY) 之外设置灰色区域的颜色?

最佳答案

有两种方法可以实现这一目标。两种方式都使用两个相机。

第一种方式。创建第二个相机。第二个相机的深度应该比动态相机小。这第二个,“背景”相机可以显示任何你想要的东西,例如,一个单独的天空盒,一个单独的用户界面,其他场景内容等等。

第二种方式。您的动态相机实际上不会动态调整大小。相反,将您的相机渲染到 Target Texture。在 Material 中使用此纹理,并将 Material 指定给四边形网格(最合适)。然后可以像任何其他 3D 对象一样在您的场景中使用此网格,这意味着您不仅可以定位它,还可以缩放它甚至旋转它。您添加的新相机可以拥有自己的天空盒、UI 等。

我会选择第二种方式。部分是个人喜好,还因为它听起来更适合您的情况并且更容易实现。您还可以实现更多效果以获得额外的“哇”。

关于c# - 在 Unity3D 中为超出相机限制(视口(viewport)矩形)的区域设置背景,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51397326/

相关文章:

javascript - 2 个问题/1。全屏(jQuery)/2。更改背景并保存为 Cookie

C# 如何创建和初始化 ValueTuples 的静态数组?

c# - 可选的用户桌面快捷方式问题

c# - 添加 log4net 配置时出现异常

c# - 玩家位置的敌人射击

c# - 通用 Windows 平台上的 Type.GetTypeCode

Unity3D上的Java插件无法启动新线程

html - 如何在容器周围的 twitter bootstrap 中制作背景图像

c# - 从邮件客户端打开应用程序,Windows Phone 8

安卓/iOS : schedule task while app is in background/off