虚拟现实技术导论(微课版) 课件 第2章 Unity3D引擎_第1页
虚拟现实技术导论(微课版) 课件 第2章 Unity3D引擎_第2页
虚拟现实技术导论(微课版) 课件 第2章 Unity3D引擎_第3页
虚拟现实技术导论(微课版) 课件 第2章 Unity3D引擎_第4页
虚拟现实技术导论(微课版) 课件 第2章 Unity3D引擎_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

.Unity3D引擎

.

2.1Unity3D引擎介绍

.目录.1.Unity下载与安装

.2.创建项目

.3.Unity编辑器界面

1.Unity下载与安装

进入Unity官网,单击“下载Unity”按钮,Unity中的各种版本在此界面均可找到

1.Unity下载与安装

单击“UnityHub(Win)”按钮,下载UnityHubSetup.exe安装程序,运行此程序,即可开始安装UnityHub。在UnityHub中,有Unity官方提供的教程、工程文件、资源、学习链接等,如图2-3所示。单击“安装”>“添加”按钮,选择“Unity2019.3.2f1”单选项,单击“下一步”按钮。添加Unity运行所需要的模块,如MicrosoftVisualStudioCommunity2019(脚本编辑器)、AndroidBuildSupport、Documentation(参考文档)、简体中文等。

2.

创建项目

在UnityHub中单击“新建”按钮,选择Unity版本后,选择项目类型:3D,输入项目名称,设置项目存放位置后,单击“创建”按钮,即可新建一个Unity游戏项目,Unity自动在指定的路径下创建以项目名命名的文件夹。标准的Unity项目文件夹中主要包括以下文件夹:Assets文件夹:包含所有在Unity中创建、导入的文件,是Unity的主要工作文件夹;Library文件夹:存放项目的数据库文件;ProjectSettings文件夹:存放项目的配置文件;Logs文件夹:存放Unity工作过程中的日志文件。

3. Unity编辑器界面

Unity编辑器由多个面板组成,每个面板负责不同的功能,主要包括Hierarchy(层级)、Project(项目)、Inspector(属性)、Scene(场景)、Game(游戏)、Console(控制台)等面板。

Unity中的面板可随意拖动或关闭,也可通过编辑器右上角的“Layout(布局)”选择框设置默认的界面布局。3.

Unity编辑器界面—Project面板

Project(项目)面板按照文件夹的目录结构来存放项目的所有资源,对应着项目文件夹中的Assets文件夹。

在Project面板中的Assets面板空白处右键,弹出菜单中单击Create可创建各种资源,常用的资源包括:场景、游戏脚本、预制体、材质、动画、纹理贴图及导入的其他资源。

3.

Unity编辑器界面—Hierarchy面板

Hierarchy(层级)面板中显示场景中所有的游戏对象(GameObject),新建的项目中具有两个默认的物体:MainCamera(摄像机)和DirectionalLight(方向光)。

在此面板中单击鼠标右键,在弹出的菜单中创建游戏物体,也可通过菜单项“GameObject”来创建游戏物体。

3.

Unity编辑器界面— Inspector面板Inspector(属性)面板相当于“属性编辑器”,显示当前选中游戏对象的所有组件及组件属性,包括GameObject(游戏对象)、Assets(资源)和Materials(材料)等,以及编辑器设置和首选项。右图所示是MainCamera(主相机)的属性,除了物体的Position(位置),Rotation(旋转)和Scale(缩放)值之外,还可以编辑主相机的所有属性。MainCamera属性3.

Unity编辑器界面—Scene面板Scene(场景)面板用来显示和编辑场景中的游戏物体,常见操作是调整游戏对象的位置、方向、旋转、缩放等。

HandTool:手型工具,用于调整当前视野位置;MoveTool:移动物体,可在X、Y、Z三个方向移动物体;RotateTool:旋转物体;ScaleTool:缩放物体;RectTool:物体在二维平面的移动和缩放;Move,RotateorScale:混合工具,集合移动、旋转及缩放三种工具;AvailableCustomEditorTools:自定义编辑器工具。3.

Unity编辑器界面— Game面板Game(游戏)面板中显示游戏运行时的图像,在编辑器中运行游戏后,自动切换到此面板。

在游戏模式下,使用者所做的任何改变都是暂时的,退出游戏模式时使用者所做的修改将会被重置。控制游戏运行的按钮分别是:运行游戏、暂停游戏运行、下一个关卡3.

Unity编辑器界面— Console面板Console(控制台)面板用来显示控制台信息。若脚本编写出现错误,在此面板中会有红色字体显示出错位置和原因等信息。。

.谢谢观看

.Unity3D引擎

.2.2Unity3D引擎的基础内容

.目录.6.

摄像机Camera

.2.

Assets

.3.

预设体Prefab

.4.

材质Material

.5.光源系统Light

.1

.

GameObject、Component

.7.

粒子系统Particle

.8.物理系统Physics

1.GameObject、Component

.GameObject

.

GameObject,它代表的是游戏对象,如游戏中的角色、道具、敌人,等等。.在Hierarchy面板中创建一个游戏对象,也可通过菜单“GameObject”>“3DObject”命令创建,游戏对象可以是一个相机、一个灯光,或者一个简单的3D模型。

.Component

.

每个游戏对象上可以加载不同的Component(组件),组件可以是一个脚本、一张贴图或一个模型。.一个基本的Cube游戏对象,默认就有4个组件:Transform组件MeshFilter组件BoxCollider组件MeshRenderer组件

2.

外部资源的导入和使用

1. 导入单个文件菜单“Assets”>“ImportNewAsset”;导入Unity系统自带的资源包

在AssetStore页面的搜索框中输入关键字,搜索结果页面选中所需素材,点击下载按钮;下载完成后,在出现的窗口中直接单击“Import”按钮。3.导入外部资源包菜单“Assets”>“ImportPackage”>“CustomPackage”;文件选择框中选择以“.unitypackage”为扩展名的资源;3.

预设体Prefab

Prefab意为预设体,可以理解为一个游戏对象及其组件的集合,目的是使游戏对象及资源能够被重复利用。预设体储存着一个游戏对象及游戏对象的所有组件。修改预设体的属性,预设体实例化后的游戏对象也会发生相应的改变。

创建一个立方体的Prefab,操作步骤如下:

(1) 新建一个Cube(立方体)(2) 将Hierarchy面板中的Cube直接拖动到Project面板prefabs文件夹中,生成Cube预设体,预设体的扩展名为.prefab;Hierarchy面板中的Cube字体颜色变成了蓝色。4. 材质Material

Material材质用来定义物体表现信息的,在3D引擎里,通常默认以球体网格模型来展示材质,所以材质也叫做材质球。Unity提供的材质有:Material(普通材质)、PhysicMaterial(物理材质)、Physics2DMaterial(2D的物理材质)。创建一个材质,操作步骤如下:(1) Project面板中,单击鼠标右键,在弹出菜单中选择“Create”>“Material”,创建一个新的材质球,材质球默认名称为NewMaterial,材质球扩展名为.mat;(2) 单击新材质球,重命名为CubeMaterial;(3) 材质球选色及贴图:在Project面板中选中CubeMaterial材质球,单击Inspector面板的Albedo选材质的颜色,也可以单击属性前面的小圆圈按钮给材质球添加纹理图片。(4) 游戏对象上色:材质球创建好后,选中材质球,按住鼠标左键将其拖曳到Scene面板中的游戏对象上即可,或者拖曳到Hierarchy面板中的游戏对象上。5.光源系统Light

Unity中的光源系统可以很好地模拟自然界的光线效果,比如:光的照射、反射、折射等物理特性,增加真实感和立体感。光源系统可以模拟太阳、燃烧的火柴、探照灯、手电筒、爆炸等等。Unity中提供4种光源:

DirectionalLight:方向光,是游戏场景中的主光源,类似于太阳的照射效果,光线从一个方向照亮整个场景;

PointLight:点光源,从一个点向四周平均发射光线,类似于灯泡的照射效果,常用来模拟火把、灯光来照亮局部场景;

SpotLight:聚光灯,按照一定方向在圆锥体范围内发射光线电,类似于舞台上的聚光灯;

AreaLight:区域光,一般不用于实时光照,用于制作光影贴图烘焙。6. 摄像机Camera

Unity的每个默认场景都会有一个默认的摄像机MainCamera,它的作用是展示游戏世界画面。

Hierarchy面板右键单击,弹出的快捷菜单中选择“Camera”,可创建多个摄像机。

摄像机有一个由白线构成的观察区间,叫做视锥体。在视锥体范围内的物体,才能被游戏玩家看到。

Hierarchy面板上选中摄像机,Scene面板右下角会出现预览窗口(GamePreview)。

7. 粒子系统Particle在场景中模拟烟雾、气流、火焰和各种大气效果粒子本质是简单微小的图片,粒子系统就是发射大量的粒子,这些粒子以特定规律运动,从而模拟出复杂的自然现象或效果。标准资源中粒子效果包括:Dust(沙尘)、Fire(火焰)、Water(水)、Smoke(烟雾)等Project视图中Assets>StandardAssets>ParticleSystems>Prefabs文件夹下的粒子预设体拖入到Scene视图中,即可生成粒子效果。粒子系统的一个好处是它们是可以添加到场景中任何一个GameObject的组件中。通常粒子系统不单独出现,而是依附在游戏对象上。

7. 粒子系统Particle--火焰效果菜单File>NewScene,在场景中新建一个场景;Hierarchy视图面板右键Create>Cylinder,在场景中创建一个圆柱体。Hierarchy视图中选中Cylinder,对应Inspector视图中点击AddComponent按钮,选择Effects>ParticleSystem,给圆柱体添加粒子效果;Hierarchy视图中选中Cylinder,修改Inspector窗口中ParticleSystem组件属性。ParticleSystem组件常用的属性模块有:ParticleSystem(固有模块),Emission(发射模块),Shape(形状模块),Renderer(渲染模块)。属性Duration(Renderer模块:Material和Trail选择ParticleSmokeWhite贴图;粒子系统运行的时间长度):2,startLiftime(粒子的初始生命周期):2秒,startspeed(粒子的初始速度):4,startsize(粒子的初始大小):3;Shape模块:angle设为0,radius设为0.2,Rotation中X值设为-90;SizeoverLifetime模块:调整它的变化曲线;在ParticleSystemCurves面板中,点击曲线后右键增加一个节点,由于火焰是底部小、中部大、上部小,大致的调整曲线的弧度;调整曲线的过程中可以看到粒子的变化;ColoroverLifetime模块:使用两种颜色混合,火焰底部一点蓝色、上部黄色。

7. 粒子系统Particle--火焰效果8. 物理系统Physics物理系统是Unity3D中非常重要的组成部分。游戏中的物体应该具有正常的物理行为,例如,可以加速、具有摩擦力、受到碰撞、引力和其他力量的影响。Unity的物理系统定义了物体的物理材质属性、物体受力后的运动以及物体碰撞后的运动。单击“Component”>“Physics”命令,展开的列表就是物体的物理属性,如图所示,主要有刚体(Rigidbody)、碰撞器(Collider)、关节(Joint)等。8.

物理系统Physics--刚体Rigidbody当游戏对象添加了Rigidbody组件后,游戏对象便可接受外力与扭矩力,以保证游戏对象像在真实世界中那样进行运动。任何游戏对象只有添加了刚体组件才能受到重力的影响。给游戏对象添加Rigidbody组件可通过菜单“Component”>“Physics”>“Rigidbody”;或直接在游戏对象的Inspector面板中,单击“addComponent”按钮,选择“Physics”>“Rigidbody”命令。

Rigidbody组件的属性面板图。主要属性介绍如下:

Mass:游戏对象的质量,单位为Kg;

Drag:游戏对象运动时受到的空气阻力,0表示没有空气阻力,阻力极大时游戏对象会立即停止运动;

AngularDrag:游戏对象旋转时的角阻力,数值意义与Drag一样;

UseGravity:游戏对象是否受到重力的作用,默认勾选表示应用重力;

Constraints:刚体约束8.

物理系统Physics--碰撞器Collider碰撞器定义游戏物体在发生物理碰撞时的形状,两个游戏对象发生碰撞时,碰撞器可以产生系统默认的碰撞产生的物理效果。

通常Collider会与Rigidbody一起使用,没有碰撞器组件的刚体物体相遇时,会相互穿过。Unity的碰撞器分为两类:基本碰撞器和非基本碰撞器。基本碰撞器包括BoxCollider(盒碰撞器)、SphereCollider(椭圆碰撞器,Sphere自带的碰撞器)、CapsuleCollider(胶囊碰撞器,Capsule自带的碰撞器)等;非基本碰撞器包括WheelCollider(车轮碰撞器)、MeshCollider(网格碰撞器,Plane自带的碰撞器)等。

.谢谢观看

.Unity3D引擎

.

2.3操作实例:野外地形的制作1.创建一个新的场景

File>NewScene2.导入Unity自带的标准资源包Environment

AssetStore页面的搜索框中输入standardAssets,页面中选择第一个下载;下载完成后,直接点击import按钮。

Project视图中的Assets文件夹下新增加了一个StandardAssets文件夹,其下包含:2D、相机(Cameras)、角色(Characters)、跨平台输入(CrossPlatformInput)、效果(Effects)、环境(Environment)、粒子系统(ParticleSystems)、原型(Prototyping)、实用工具(Utility)和车辆(Vehicles)等文件夹。

Project视图中的Assets>StandardAssets>Environment文件夹中提供了地形系统设计中需要的树木、花草、水等资源纹理贴图;3.导入外部资源包点击菜单Assets>ImportPackage>CustomPackage;文件选择框中选择以“.unitypackage”为扩展名的资源;在ImportUnityPackage对话框中点击“All”按钮后,再点击“Import”按钮;Project视图中的Assets文件夹下新增加了一个TerrainAssets文件夹4.Scene场景中创建一个Terrain游戏对象

Hierarchy面板下的Create>3DObject>Terrain;调整摄像机的角度到合适位置,以便观察地形的变化;5.地形系统的工具按钮创建相邻地形图:在当前地形图的四边增加新的地形图,可形成不规则形状的地图;地形绘制种树工具:在Terrain中添加树木。细节绘制:用于添加草丛、花和其他小物体(例如岩石)。地形设置:Terrain的参数设置面板6.地形设置--Resolution单击地形设置按钮,找到MeshResolution

设置地形宽度(TerrainWidth):500

长度(TerrainLength):500

高度(TerrainHeight):6007.绘制地形的第一层纹理Inspector面板中,单击Terrain下的PaintTerrain工具,选择paintTextures,点击按钮EditTerrainLayers>CreateLayer,弹出的SelectTexture2D对话框中选择一种Grass的纹理贴图点击添加的纹理图,修改Tilling值:X—10、Y—10,使草地效果更接近真实实景。8.绘制地形中的道路再次给地形系统添加一个纹理贴图,用于绘制地形中的道路;调整笔刷大小(BrushSize)和笔刷透明度(Opacity)的值后,用笔刷在地形系统下绘制道路。9.整个地形向上抬高在Terrain的Inspector面板中,单击Terrain下的PaintTerrain工具,选择SetHeight,将Height设置为20,然后单击FlattenTile按钮,此时整个地形就会向上抬高20个单位,为制作地形系统的湖泊做准备;10.绘制山脉:在Terrain的Inspector面板中,单击Terrain下PaintTerrain工具,选择Raise/LowerTerrain按钮,选择不同的笔刷样式,设置不同的BrushSize大小;直接在Scene视图中单击鼠标左键或者按住鼠标左键拖动,即可绘制不同的山脉;按住Shift按钮,同时拖动鼠标左键,可降低地形高度,用来制作湖泊。使用SmoothHeight工具,对地形进行整体平滑过渡处理,使景观柔和并减少突然变化的外观。11.添加树木单击PlaceTrees按钮--EditTrees按钮--选择AddTree选项--选择树的贴图,添加到地形系统中;

TreeDensity参数用来调节树的密度

TreeHeight参数用于设置树的高度范围;12.添加水效果在Project视图中的Environment文件夹下的Water文件夹中,找到水资源的预设体WaterProDaytime

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论