Unity3D 场景创建 -- 基本概念

时间:2021-04-22 04:08:07

1. 游戏物体与组件

1.1 游戏物体

      游戏物体:是一个具有一定功能(组件)的模型 ,因此它由以下两部分组成

          • 物体(基本框架):只是一个实体,如汽车,但不能动

          • 组件(功能):实现各种功能的代码,如汽车的“驾驶功能”组件可以使汽车运动起来,汽车的“刚体”组件使汽车具有了碰撞功能。

1.2 物体和组件的关系

      • 每个物体必须包含:有仅且有一个Transform组件

      • 其它的组件,物体根据需要进行选择

      • 脚本在经过编译并实施到游戏物体之后,它也变成了一种组件,脚本组件是一种用户可以自己创建的组件。

      • 在场景中的物体,会按规则把其身上的所有组件应用一遍,以改变自身属性

2. 场景视图操作

     质量设置:Edit->Project Settings->Quality(Levels:Fastest、Fast、Simple、Good、Beautiful、Fantastic       ---对FPS影响巨大

2.1 场景浏览

    • 移动(前、后、左、右)

       1)用Mouse选中Scene窗口,但不要选择任何物体

       2)慢速移动:上下箭头:进行前后移动;左右箭头: 进行左右移动 

       3)快速移动:一直按住Shift键,然后上下箭头:进行前后移动;左右箭头: 进行左右移动

    • 让某对象成为场景显示的焦点

       1)在层次图中双击此物体

       2)或先选中此物体,然后按F键 (Scene为当前激活窗口)

    • 移动整个场景

       1)选中小手图标,然后按住Mouse左键可拖动整个场景

       2)滚动Mouse中轮,则整个场景前后移动

       3)按住Mouse右键,则可旋转整个场景

    • 飞行模式

       1)按住Mouse右键

       2)按WASD键可前后左右浏览当前场景,按QE可上下移动场景

    • 一个物体在另一物体的表面上移动

       1)按住Shift+Ctrl键,然后移动物体

2.2 灯光

     • 场景的外表:由多边形和纹理定义

      • 场景的颜色和基调:由灯光定义

      • 实时灯光(Light):在每一帧中都会对灯光进行计算,称为实时灯光,对性能不利。

      • 灯光贴图:对于场景中某些受灯光照射的位置或物体,其灯光效果是不需要实时发生变化的,此时则可以使用“灯光贴图”来模拟灯光的效果。它可以有效地提高游戏的运行速度。

      • 渲染路径(Rendering Path):设置路径(Edit->Project Setttings->Player),使用不同的渲染路径,就可以对最终游戏发布中的灯光和阴影效果产生影响。渲染路径有以下3种:

         1)Vertex Lit (顶点照射)

         2)Forward (前向照射)

         3)Deferred Lighting (延时灯光)

         需要根据不同的发布平台,及不同的需要来设置相应的渲染路径。

      • 灯光类型:

         1)点灯光(Point):模拟蜡烛和灯泡的效果

         2)聚光灯(Spot):模拟手电筒或汽车头灯的效果

         3)方向灯(Directional):可平行的发射光线,可以模拟太阳的效果

         4)区域灯(Area <baked only>):主要在创建灯光贴图时使用

       在灯光的属性中,可以设置灯光的阴影(Shadow Type:No Shadows、Hard Shadows、Soft Shadows)

      • 绘制光晕项(Draw Halo):则可以打开灯光的光晕效果。灯光耀斑项(Draw Halo),可以设置灯光耀斑效果。

      • 渲染模式(Render Mode):主要设置灯光的重要性,此项影响灯光的显示效果,及操作效率,Auto项会在游戏运行时,根据用户设置的质量,来决定其渲染效果。可选项:Auto、Important、Not Important

      • Culling Mask:主要通过层的方式, 设置场景中的哪些物体可以被此灯光照亮,而哪些不可以

2.3 摄像机

      • 摄像机相当于人的眼睛,它把所看到的影像,输出到屏幕上,在一个场景中,必须存在一个摄像机

      • 一个场景中可使用多个摄像机:来创建各种摄像机效果,如创建小地图的效果,分屏效果等等      

      • 清除标签项(Clear Flags):主要设置摄像机在渲染过程中,如何设置其背景、以及在渲染过程如何产生颜色深度信息等等

         1)天空盒(Skybox)和实体颜色项(Solid Color):主要设置摄像机机在渲染过程中对于屏幕中不存在物体的部分,也就是场景空白地方的处理,例如:若场景中的某些部分不存在物体时,我们可以使用天空盒项使其成为天空盒的内容,或者也可以直接设置这些不存在物体的部位为实体颜色,也就是此处设置的背景颜色

        2)深度项(Depth only):常用于一个场景中存在多个摄像机的情况,此时我们可以设置摄像机的渲染顺序, 来使一个摄像机的内容叠加在另外一个摄像机上

        3)不进行清除项(Don't Clear):既不会清除摄像的颜色信息也不会清除摄像机的深度信息,这样做的结果是:每一帧的渲染,都叠加在上一帧上,从而形成一种涂抹拖尾的效果(仅在一些特殊的材质效果中使用此项)

        4)Culling Mask:主要通过层的方式, 设置场景中的哪些物体可以被渲染,而哪些不可以

        5)投影项(Projection):设置当前的摄像机是透视摄像机还是正交摄像机

        6)Clipping Planes(剪切平面项):主要设置摄像机远近剪切平面的位置,只有在两个剪切平面中的物体才会被摄像机渲染,也就是才会被看到

        7)Viewport Rect(视图矩形):主要用于场景中存在多个摄像机时,可以设置其中一个摄像机视口的长方形尺寸,使其可以更好地叠加在另一个画面上。例如显示小地图效果时,我们可以调节此项中的W值,使其视图变小,以显示在另外一个摄像机的视角中

        8)Depth(深度):用于场景中有多个摄像机的情况,深度值较大的摄像机渲染的画面一定会叠加在深度值小的摄像机渲染的画面上。

        9)Rendering Path(渲染路径):用于设置整个场景的渲染质量

        10)Target Texture(目标纹理):把当前摄像机渲染的内容保存在一个纹理中,然后此纹理可以实施在其它表面上, 来创建如水面的反射效果

        11)HDR:用于打开HDR效果

        小技巧:

         • 在赛车类游戏中,可以使用大的摄像机视野,来增加速度感

         • 在摄像机中使用刚体组件来进行物理模拟

         • 使用正交摄像机视图来创建图形用户界面