Skip to content

初识Main Camera

image-20260709185830793

Unity 中的照相机 Camera 本质上不是“真实拍摄”,而是告诉引擎:从哪个位置、哪个角度、用什么规则,把 3D/2D 场景投影成一张 2D 画面

核心原理

Unity_Camera_Principle

Camera 主要做三件事:

  1. 确定观察位置和方向 Camera 是一个 GameObject,所以它有 TransformPosition 决定从哪里看,Rotation 决定朝哪里看,Scale 一般对 Camera 没什么实际意义。

image-20260709190259692

  1. 决定能看到哪些东西 Camera 前方有一个可视区域,叫 视锥体 Frustum。 只有在这个范围内的物体才可能被渲染出来。
  2. 把 3D 世界投影到屏幕上 Unity 会把摄像机看到的 3D 坐标转换成屏幕上的 2D 像素,最后显示在 Game 窗口或设备屏幕上。

可以把它理解成:

场景中的物体

摄像机视角筛选

3D 坐标投影到 2D 屏幕

渲染成最终画面

常见参数

image-20260709190121215image-20260709190326259

Field of View:视野角度 用于透视相机。数值越大,看到的范围越广,但边缘变形更明显,类似广角镜头。

Projection:投影方式 有两种:

  • Perspective:透视投影,近大远小,常用于 3D 游戏。
  • Orthographic:正交投影,没有近大远小,常用于 2D 游戏、等距视角、UI 或策略游戏。

Clipping Planes:裁剪平面 包括:

  • Near:离摄像机太近的物体不显示。
  • Far:离摄像机太远的物体不显示。

这两个值会影响性能和深度精度。Far 不要无脑设特别大。

Culling Mask:剔除遮罩 决定摄像机渲染哪些 Layer。 比如 UI 摄像机只渲染 UI 层,主摄像机只渲染场景层。

Depth:摄像机渲染顺序 当场景里有多个 Camera 时,Depth 值越大的越后渲染,会覆盖前面的画面。

Clear Flags / Background:清屏方式 决定摄像机开始渲染前,背景怎么处理。 常见有天空盒、纯色、保留上一帧等。

Viewport Rect:显示区域 决定 Camera 的画面显示在屏幕的哪一块。 可以用来做分屏游戏、小地图、画中画。

透视相机原理

透视相机类似人眼或真实相机:

近处物体大
远处物体小
平行线看起来会向远处汇聚

适合:

  1. 第一人称游戏
  2. 第三人称游戏
  3. 3D 动作游戏
  4. 赛车、射击、冒险类游戏

正交相机原理

正交相机不考虑距离带来的缩放:

近处和远处大小一样
没有透视变形

适合:

  1. 2D 游戏
  2. UI
  3. 地图
  4. 棋盘游戏
  5. 等距视角游戏

正交相机中最重要的参数是 Size,它控制摄像机垂直方向能看到多大的范围。

渲染过程简化理解

Unity 每一帧大概会这样工作:

  1. 找到场景中的 Camera。
  2. 根据 Camera 的位置和方向生成观察范围。
  3. 根据 Culling Mask 和视锥体剔除不可见物体。
  4. 按材质、光照、Shader、深度等规则渲染物体。
  5. 应用后处理效果,例如泛光、景深、色彩调整。
  6. 输出到屏幕、Render Texture 或其他目标。

多个摄像机

Unity 可以同时使用多个 Camera,例如:

  • 主摄像机:渲染游戏世界。
  • UI 摄像机:单独渲染界面。
  • 小地图摄像机:从上往下渲染地图。
  • 武器摄像机:第一人称游戏中单独渲染手和武器。
  • 监控屏摄像机:把画面渲染到一张 Render Texture 上。

一句话总结

Unity 的 Camera 就是场景的“观察者”和“渲染入口”:

它决定玩家从哪里看、看多远、看哪些层、用透视还是正交方式看,最后把三维世界变成屏幕上的二维画面。

文章评价

读完这篇,留下你的看法

暂无审核通过的评价。

登录账号后才能评价。

本站访客数0总站访问量0本页访问量0