最新文章
Cocos2d-x游戏开发实例详解7:对象释放时机
03-25 13:59
Cocos2d-x游戏开发实例详解6:自动释放池
03-25 13:55
Cocos2d-x游戏开发实例详解5:神奇的自动释放
03-25 13:49
Cocos2d-x游戏开发实例详解4:游戏主循环
03-25 13:44
Cocos2d-x游戏开发实例详解3:无限滚动地图
03-25 13:37
Cocos2d-x游戏开发实例详解2:开始菜单续
03-25 13:32
unity3d camera渲染不显示
在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的相机之上。通过调整标准视口矩形(参考前面的属性列表)的属性值,可以改变相机视图的大小和在屏幕上的位置,从而创建多个小视窗,如导弹控制器、小地图窗口、后视镜等。