在 Unity 中,摄像机是创建场景不可或缺的元素。
一、摄像机的类型
- 透视摄像机
- 具有近大远小的效果,与我们日常生活中使用的摄像机相似。在现实中拍摄物体时会呈现近大远小,例如两个一样大的物体,一个近一个远,通过透视摄像机拍摄后,近的物体在画面中看起来更大。其拍摄范围是一个锥形。
- 正交摄像机
- 没有近大远小的效果,拍摄范围是一个矩形。在一些 2D 项目中使用较多。
二、摄像机的重要设置
- 投影设置
- 通过选中摄像机查看 “投影” 选项,可以区分透视和正交模式。默认情况下相机呈现大的锥形是透视模式,选择正交后则变为矩形。
- 清除标志设置
- 天空盒:相机可以清除天空盒内容,之后能从商城添加天空盒素材。例如通过在资源商店搜索 “skybox” 获取各种天空盒,下载后导入即可让相机显示漂亮的天空。
- 纯色:相机拍摄不到的区域会变为设置的纯色,并且可以修改颜色。
- 不清除:拍摄不到的区域显示黑色,一般不常用。
- 景深度:拍摄不到的区域不拍摄,主要用于叠加。当有两个相机时,深度较高的相机可设为景深度,优先显示其拍摄到的内容,拍摄不到的区域则找下一个相机的数据填充。
- 剔除遮罩
- 讲图层时用过,可选择不想显示的图层。比如去掉 UI 层,若物体图层是 UI,则相机拍摄时不会显示。
- FOV 轴
- 可通过垂直或水平设定视野大小,默认用垂直即可。改变视野时,锥形会有所变化,进而影响显示效果。
- 镜面和圆面
- 摄像机的锥形有镜面和圆面两个面,镜面是相机发射出来的面,在这两个面之间的物体才能被拍摄到。可以调整镜面和圆面的距离,例如把镜面调远,过远会导致物体显示不正常;把圆面调近,相机拍摄的范围会变小。
- 句型与显示效果
- 句型代表 xy 宽高,值在 0 - 1 之间,代表相机拍摄内容在窗口中的显示效果。一般不去调整,x0y0 从默认位置开始显示,宽高为 1 是正常显示。
- 属性设置
- 摄像机拍摄的内容在窗口中显示的位置和比例是按比例算的,从 0 - 1,0 是 0%,1 是 100%。例如创建新摄像机设为纯色红色,x y 为 0 0 时全屏显示。若想让内容显示在右上角,可将 y 设为 0.5,x 设为 0.5,从屏幕中间点开始计算显示。宽高设为 0.8,则上下左右会留 0.1 的位置。
- 目标纹理
- 相机拍摄内容正常渲染到目标上,默认目标显示在视窗。通过创建渲染器纹理,将相机拖到目标纹理上,相机拍摄内容不在窗口显示,而是传到纹理中,并且纹理可拖到游戏物体上,例如平面,平面上会出现摄像机拍摄到的内容。
以下是一些简单的示例代码(伪代码示例,实际中需根据具体需求和 Unity 版本等进行调整):
// 创建摄像机
Camera myCamera = new Camera();
// 设置摄像机为透视模式
myCamera.projection = CameraProjection.Perspective;
// 设置清除标志为天空盒
myCamera.clearFlags = CameraClearFlags.Skybox;
// 设置剔除遮罩,不显示 UI 层
myCamera.cullingMask &= ~(1 << LayerMask.NameToLayer("UI"));
// 调整视野大小
myCamera.fieldOfView = 60;
// 创建渲染器纹理
RendererTexture renderTexture = new RendererTexture();
// 将相机的目标纹理设置为创建的渲染器纹理
myCamera.targetTexture = renderTexture;
通过对摄像机的这些了解和设置,可以更好地在 Unity 中创建出符合需求的场景和效果。在实际操作中多尝试和研究,就能更熟练地运用摄像机相关知识。
4769

被折叠的 条评论
为什么被折叠?



