unity3d camera渲染不显示

2015年01月16日 10:46 0 点赞 0 评论 更新于 2025-11-21 14:18

在Unity3D开发中,相机(Camera)的渲染显示问题是常见的困扰。就如同电影里的镜头是将故事呈现给观众的窗口,Unity的相机则是把游戏世界展示给玩家的关键工具。在场景中,至少会存在一个相机,当然也可以有多个相机。多相机的运用能实现双人分屏效果,或者创造出高级的自定义效果。我们还能让相机移动,甚至通过物理组件对其进行控制。几乎任何你能想到的效果,都可以借助相机来实现,并且可以根据游戏风格选择典型或特殊的相机类型。

相机概述

相机是为玩家捕捉和展示游戏世界的装置。通过对相机进行定制和操作,能够让游戏呈现出与众不同的外观。在一个场景中,相机的数量没有限制。它们可以按照任意顺序进行渲染,可以在屏幕的任何位置渲染,甚至可以只渲染屏幕的一部分。

相机属性详解

1. Clear Flags(清除标记)

该属性决定了屏幕的哪部分将被清除。当使用多个相机描绘不同的游戏景象时,这个属性非常实用。

2. Background(背景)

当镜头中的所有元素描绘完成,且没有设置天空盒时,会将选中的颜色应用到剩余的屏幕区域。

3. Culling Mask(剔除遮罩)

用于包含或排除相机渲染的对象层。可以在检视视图中为对象指派层。

4. Projection(投射)

用于切换摄像机的模拟透视功能,有以下两种模式:

  • Perspective(透视):相机将以完全透视的方式渲染对象。
  • Orthographic(正交):相机将以没有透视感的方式均匀地渲染对象。

5. Size(大小)

当相机设置为正交模式时,此属性表示摄像机的视口大小。

6. Field of view(视野范围)

指相机的视角宽度以及纵向的角度尺寸。

7. Clipping Planes(剪裁平面)

规定了从相机到开始渲染和停止渲染之间的距离,包含以下两个参数:

  • Near(近点):相对于相机开始描绘的最近点。
  • Far(远点):相对于相机开始描绘的最远点。

8. 归一化视口矩形

用四个数值来表示相机的视图在屏幕上的绘制位置,使用屏幕坐标系(值范围为0 - 1),具体参数如下:

  • X:相机视图绘制的水平位置起点。
  • Y:相机视图绘制的垂直位置起点。
  • W (Width) 宽度:相机输出到屏幕上的宽度。
  • H (Height) 高度:相机输出到屏幕上的高度。

9. Depth(深度)

表示绘图顺序中相机的位置,具有较大值的相机将绘制在具有较小值的相机之上。

10. Rendering Path(渲染路径)

该选项定义了相机将要使用的渲染方法,有以下几种:

  • Use Player Settings:使用播放器设置,相机将采用播放器设置中所指定的渲染路径。
  • Vertex Lit(顶点光照):相机对所有对象的渲染将作为顶点光照对象进行渲染。
  • Forward(快速渲染):所有对象将按每种材质一个通道的方式进行渲染,这与Unity2.x中的标准相同。
  • Deferred Lighting(延迟照明):所有对象将先无照明绘制一次,然后所有对象的照明将在渲染队列的末尾一起进行渲染。

11. Target Texture(目标纹理)

(仅适用于Unity Pro/Advanced)请参考Render Texture,该页包含了相机视图的输出。设置此引用属性将禁用相机渲染到屏幕的功能。

相机的应用场景

相机对于将游戏展示给玩家至关重要。可以对相机进行定制、编写脚本或子类化,以实现几乎任何可想象的效果。不同类型的游戏对相机的使用方式有所不同:

  • 益智游戏:通常保持相机静态,以显示全部视角。
  • 第一人称射击游戏:应将相机作为玩家角色的子对象,并将其放置在与角色眼睛等高的位置。
  • 赛车游戏:可能更希望让相机跟随玩家的车辆。

此外,还可以创建多个相机,并为每个相机分配不同的深度。相机按照深度从低到高的顺序进行绘制,例如,深度为2的相机将绘制在深度为1的相机之上。通过调整标准视口矩形(参考前面的属性列表)的属性值,可以改变相机视图的大小和在屏幕上的位置,从而创建多个小视窗,如导弹控制器、小地图窗口、后视镜等。