【问题标题】:Background of MainCamera (Unity C#)MainCamera 的背景(Unity C#)
【发布时间】:2016-03-17 12:54:12
【问题描述】:

我在写简单的跑步游戏

我有主摄像头和图像。我想将此图像设置为主相机背景。

我的主摄像头屏幕

【问题讨论】:

  • 您可以只附加图像,调整 i 大小使其大于相机视图,并设置为底层(在其他所有内容之后)。统一的相机没有任何内置的后台功能。此外,如果您移动相机,您可能希望将背景设置为相机的子级或附加将根据相机移动重新定位背景的脚本。
  • 对,正如 Luka 解释的那样,Unity 中没有“背景”之类的东西。这只是一个像其他任何图像一样的图像。如果你碰巧把它放在“后面”,它将是你的背景。 (@ŁukaszMotyczka -- 你知道吗,你能在 Unity 2D 中使用天空盒吗???)
  • 不确定,从未尝试过。我在 3d 项目中使用了天空盒。但是对于 2d 项目,我只是放了一个精灵背景。

标签: unity3d


【解决方案1】:

** 编辑 2020

Unity 现在在 Unity 2018.4+ 中提供了一种简单的方法。

按照以下几个步骤将纹理添加为相机背景:

  1. 创建一个新的 Canvas 来保存您的图像。
  2. 在该画布中,在 Canvas 组件 上设置:
    • 渲染模式屏幕空间 - 相机
    • 渲染相机到您的主相机(拖放)。
    • 平面距离是背景渲染的单位。
  3. 右键单击新创建的画布并在其中创建一个图像
  4. 图像组件上新创建的图像上:
    • 源图像设置为您想要的背景精灵。
  5. 将图像拉伸到全屏尺寸。您可以按如下方式执行此操作:在该图像的 Rect Transform 中,有一个 灰色方块,其中带有一些箭头和线条(上面写着 stretch和左侧),点击它,会打开一个带有多个方块的窗口,按住Alt并点击最右下方块。

现在你应该有一个结构作为相机背景了!


** 旧 Unity

您可以使用 Skybox 制作它,也可以使用 GUI 纹理

这是我之前的做法:

  1. 新建一个相机(GameObject -> Create Other -> Camera),命名为“Background Camera”。

  2. 创建一个新的 GUI 纹理(游戏对象 -> 创建其他 -> GUI 纹理),并将其命名为“背景图像”。

  3. 单击背景图像检查器窗格中的“图层”下拉菜单,然后选择“添加图层”。

  4. 在下一个空闲的“用户层”插槽中,创建一个名为“背景图像”的新层名称。如果您尚未添加任何其他图层,它将直接位于名为“Terrain”的图层下方。

  5. 在层次结构中选择您的背景图像,并为其赋予所需的纹理,并在“Pixel Inset”下设置 x、y、宽度和高度,使其适当地填充屏幕。

    李>
  6. 在检查器窗口顶部附近,使用图层下拉菜单将您之前定义的“背景图像”图层分配给此游戏对象。

现在在层次结构中选择您的背景相机,并在检查器中调整这些设置:

  1. 取消检查 Flare 层和音频侦听器(但保持 GUILayer 处于启用状态)

  2. 将清除标志设置为纯色

  3. 将深度设置为 -1

  4. 设置 Culling Mask,首先设置为“Nothing”,然后设置为“Background Image”

现在选择您的其他(主)相机,并在检查器中:

  1. 将其清除标志设置为“仅深度”

  2. 单击其剔除蒙版设置,并取消选中“背景图像”。这会导致剔除遮罩显示为“Mixed ...”

瞧,这应该为您提供由背景摄像头渲染的 GUI 纹理,位于主摄像头渲染的所有其他内容之后。对于您要使用的任何其他附加相机(例如,其他相机角度),只需对它们重复最后两个步骤即可。

【讨论】:

  • 我有 Unity 5 但看不到 GUI 纹理(
  • 是的,在这个版本的 Unity 中不推荐使用 GUI 纹理,尝试使用 UI -> Image,我现在无法检查这是否有效
  • 认为 Unity 是金子……但有这么多 WEIRD……在哪里放置 Create Canvas?在层次结构中,在资源中?学习 Unity 很奇怪。需要一些方向。谢谢!
【解决方案2】:

其他答案似乎已经过时了。我想我会分享一些新的东西。简单地说:

  • 右键单击您的主摄像头,选择UI -> Image。
  • 选择您的图像,然后在 Rect Transform 中显示 "stretch""stretch" 的小框上单击该框。现在将出现一个带有更多框的菜单。按住 ALT 并选择最远的框 **Down Right **。这是带有指向所有方向的蓝色箭头的框。

现在您的图像已适合您的画布。除此之外,您还需要将画布安装到相机上。

  • 选择您的画布。在 Canvas 的检查器中,查找名为 Canvas 的组件。将渲染模式更改为 屏幕空间 - 相机。现在它会在 Render Camera 框 中询问您的相机。只需将您的主摄像头拖到渲染摄像头,瞧,您现在有了一个充满屏幕的背景没有有 2 个摄像头 lmao :)

编辑:不要忘记关闭图像和画布的光线投射!

【讨论】:

  • 哦,谢谢!我一直在寻找更新版本,因为每条评论都在这里谈论旧版本和统一论坛。这个答案应该会上升!
  • 我没有看到“拉伸”和“拉伸”的小方框。请改为“灰色矩形”
  • “在其中创建图像” - 你的意思是,右键单击、创建、UI、图像?细节很重要。这个 Unity 的来龙去脉和 C# 中的脚本非常奇怪,不像我用过的任何 API。十多年来,我使用了许多 Java、Flash/AS3,但没有达到预期的效果。我想 NOOBS 以此作为对开发行业的第一次一瞥是有道理的,但老家伙们很奇怪。
【解决方案3】:

Unity 带有天空盒功能,您可以使用它来创建背景。这可能需要一些重塑,但您应该能够通过教程here 达到预期的效果。

【讨论】:

    【解决方案4】:

    对于使用URP相机的用户,设置背景很容易。

    在 URP 中,我们有两种类型的相机 Base 和 Overlay。它是相机组件的第一个选项,称为 RENDER TYPE

    1. 将 MainCamera 设置为 Base Camera 并将剔除遮罩设置为空。
    2. 再创建两个摄像头作为叠加层。
    3. 其中一个将渲染整个游戏,另一个是 将渲染背景。假设我将它们命名为 RenderGame & 渲染背景。
    4. 对于背景,使用 screenSpace - Camera 创建单独的 CANVAS。和 将要渲染背景的 Overlay 相机放入 它。并将其图层设置为“背景图层”
    5. 为包含背景的画布创建并分配一个单独的图层。
    6. 对于 RenderGame 相机,将剔除遮罩设置为所有内容,然后 取消选择“背景层”。
    7. 对于 RenderBackground,将剔除遮罩设置为仅“背景层”。
    8. 最后在mainCamera中有一个叫做Stack的选项,在它下面 先放RenderBackground,再放RenderGame。 订单是 重要

    For help you can refer to Image

    【讨论】:

      【解决方案5】:

      步骤:

      • 制作一个新的画布
      • 在该画布中,在 Canvas 组件上将 Render Mode 设置为 Screen Space - Camera
      • 将相机渲染到主相机(拖放),平面距离是渲染背景的单位。
      • 右键单击新创建的画布并在其中创建一个图像
      • 源图像(拖放)设置为所需的背景精灵。
      • 将图像拉伸到全屏尺寸。
      • 您可以按如下方式执行此操作:在该图像的 矩形变换 中,有一个 灰色正方形,其中带有一些箭头和线条(说在顶部拉伸和左侧),单击它,将打开一个带有多个方块的窗口,按住 Alt单击最右下角的方块

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-04-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多