虚拟现实开发基础及实例 课件 第5章 虚拟现实开发工具2_第1页
虚拟现实开发基础及实例 课件 第5章 虚拟现实开发工具2_第2页
虚拟现实开发基础及实例 课件 第5章 虚拟现实开发工具2_第3页
虚拟现实开发基础及实例 课件 第5章 虚拟现实开发工具2_第4页
虚拟现实开发基础及实例 课件 第5章 虚拟现实开发工具2_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

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

文档简介

第五章虚拟现实开发工具

在介绍Unity的组件之前,我们先介绍一下Unity的特有方法,也称系统方法,是Unity语言类中独有的方法,有以下特点:(1)特有方法不需要调用,满足一定条件后会自动触发。(2)特有方法会自动继承,如果父类中有特有方法,子类没有,那么子类自动继承父类的特有方法,如果子类中有,则相当于重写了该特有方法。5.3Unity的特有方法(1)Start(),开始方法。方法解析:特有方法,在类文件启动的时候就执行。(2)Awake(),觉醒方法。方法解析:特有方法,在类文件在场景实例的时候就执行。Start和Awake在执行效果上都是运行的瞬间就执行,但是这二者从执行顺序上有区别,Awake在Start之前执行,而且如果类的Enable属性被关闭,也就是类非激活状态下,Start方法是不执行的,Awake方法依旧会执行。(3)Update(),刷新方法方法解析:特有方法,每帧调用一次,用于更新游戏场景和状态5.3.1类执行相关特有方法(4)FixedUpdate(),物理刷新方法方法解析:特有方法,每个固定物理帧调用一次,用于物理状态的更新(5)LateUpdate(),后刷新方法方法解析:特有方法,每帧调用一次,一般与相机相关的放到这里。(3)(4)(5)都是刷新方法,但在使用上略有不同,通常需要每帧更新的内容都放在Update中,FixedUpdate中一般放和物理更新相关的内容,LateUpdate一般放相机相关的内容,从执行属性上来说,FixedUpdate先于Update,LateUpdate最后。

以上五个方法,执行顺序由先到后,分别是Awake、Start、FixedUpdate、Update、LateUpdate。5.3.1类执行相关特有方法(6)OnEnable(),激活时执行方法解析:特有方法,类所在物体由非激活变成激活状态下执行,如果物体是被新创建出来的可以执行。(7)OnDisable(),非激活时执行方法解析:特有方法,类所在物体由激活变成非激活状态下执行,如果物体是被销毁的也可以执行。(8)OnDestroy(),销毁时执行方法解析:特有方法,类所在物体被销毁时执行。5.3.1类执行相关特有方法(9)OnApplicationQuit(),退出时执行方法解析:特有方法,类所在进行退出程序的时候执行。(10)OnBecameVisible(),显示时执行方法解析:特有方法,在物体显示的时候执行,这里的显示指的是出现在摄像机显示视角范围内,可以在屏幕中显示出来,能被看到。(11)OnBecameInvisible()不显示时运行方法解析:特有方法,同理,此方法是在物体不显示的时候执行。5.3.1类执行相关特有方法

鼠标相关的特有方法除了拥有特有方法的特点以外,还有一个特点就是只对当前方法所在类所挂载的物体起作用。(1)OnMouseEnter(),鼠标进入方法方法解析:当鼠标进入方法所在类所挂载的物体范围内是执行。(2)OnMouseDown(),鼠标按下方法方法解析:当鼠标在物体上面并按下鼠标按键的时候执行。(3)OnMouseUp(),鼠标抬起方法方法解析:当鼠标在物体上面并抬起鼠标按键的时候执行。5.3.2鼠标相关特有方法(4)OnMouseOver(),鼠标悬停方法方法解析:当鼠标悬停在物体上面并按下鼠标的时候执行,并一直执行。(5)OnMouseExit(),鼠标离开方法方法解析:当鼠标离开在物体上面时执行。(6)OnMouseDrag(),鼠标拖拽方法方法解析:当鼠标在物体上面,按住鼠标,并移动鼠标时执行。以上方法中,OnMouseEnter方法和OnMouseOver方法执行效果都是鼠标进入物体范围就执行,但Enter只在进入的瞬间执行一次,而Over会反复执行。5.3.2鼠标相关特有方法

碰撞相关特有方法分两大类别(还有其他的暂时不讨论),分别是碰撞检测和触发检测,碰撞和触发的区别会在讲物理组件的时候详细讲解。(1)OnTriggerEnter(),触发进入检测语法结构:privatevoidOnTriggerEnter(Colliderother)方法解析:当发成触发的瞬间执行,执行一次。Other为碰到的碰撞体。(2)OnTriggerStay(),触发持续检测语法结构:privatevoidOnTriggerStay(Colliderother)方法解析:当进入触发时执行,持续执行。Other为碰到的碰撞体。5.3.3碰撞相关特有方法(3)OnTriggerExit(),触发离开检测语法结构:privatevoidOnTriggerExit(Colliderother)方法解析:当触发结束瞬间执行,执行一次。Other为碰到的碰撞体。(4)OnCollisionEnter(),碰撞发生检测语法结构:privatevoidOnCollisionEnter(Collidsioncollision)方法解析:当发生碰撞瞬间执行,执行一次。collision为碰撞事件。5.3.3碰撞相关特有方法(5)OnCollisionStay(),碰撞持续方法语法结构:privatevoidOnCollisionStay(Collidsioncollision)方法解析:当发生碰撞,且处于接触状态时执行,反复执行。collision为碰撞事件。(6)OnCollisionExit(),碰撞离开方法语法结构:privatevoidOnCollisionExit(Collidsioncollision)方法解析:当结束碰撞时执行,执行一次。collision为碰撞事件。5.3.3碰撞相关特有方法

Unity的组件就是Unity官方封装好的代码文件,用来方便我们开发内容的工具,也是一个代码和我们自己写的代码从使用的方法上来说没有任何区别,对于一些初学者要记住的一句话就是“组件就是代码”,怎么从我们自己的代码文件中获得变量和方法,同样就方法可以应用到组件上,同理组件挂载到物体上,在属性面板中显示的内容,也就都可以获取和更改(也有特殊情况,暂不考虑)。5.4Unity组件

在unity环境中,我们可以利用系统自带的地形系统,制作符合我们需要的地形。在Herarchy窗口内鼠标单击Create下拉菜单,在3DObject选项卡中选择Terrain,也可以在Herarchy窗口下鼠标右击,在弹出的窗口的3DObject选项卡中选择Terrain,选择Terrain后在Inspector(属性)面板中查看对应的属性。5.4.1地形插件

在弹出的窗口中有五个子按钮,鼠标单击按钮,弹出新的面板,在面板中可以设置地形的宽度、地形的长度和高度。地形高度这个值的设置决定整个地形最大高度,也可以在编辑完地形之后再调整,调整之后会根据山脉的高度按比例缩放。5.4.1地形插件2.编辑地形(1)RaiseorLowerTerrian(上升下降地形);(2)PointTexture(添加纹理);(3)SetHeight(设置高度);(4)SmoothHeight(光滑山体);(5)StampTerrian。上升地形(地形图章工具);5.4.1地形插件2.植树BrushSize(笔刷尺寸),调整批量种植的面积;

TreeDensity(树的密度)可以调整种植面积内的树的数量;

TreeHeight(树的高度)调整树的高度;

LockWidth(锁定树的宽高比);

TreeWidth(树的宽度);5.4.1地形插件

设置树的预制体,通过鼠标单击,在下拉菜单中选中AddTree,会弹出一个窗口,为TreePrefab选择一个树的模型,通过鼠标单击或者鼠标涂抹将选中的树按照之前的设置批量种植到所编辑地形中。5.4.1地形插件

4.种草

种草的原理和种树的原理基本相同,但是用的树和草的物体是不一样的,树是用模型预制体,但草用的是图片。草如果用的比较多,比较消耗系统资源。在这个窗口可以设置,草的最小宽度、最大宽度、小高度、最大高度,随机偏差值、健康的草的颜色、枯萎的草的颜色。主要设置(细节纹理),为其选择草的图片。按照之前的设置批量种植到所编辑地形中。5.4.1地形插件

设置风的力度,在场景中可以设置风的力度,让草随风摆动,风的设置在地形组件的设置中,鼠标单击,WindSettingsforGrass(影响草的风设置),通过这些设置调整风力的大小5.4.1地形插件5.添加水面效果

在Unity的早期版本中会附带一个资源包,里面包含了一些常用素材,里面包含了自然场景包、效果素材包、粒子效果包、2D素材、角色控制等。在Unity新的版本中资源包整合到Hub的学习模块中的资源里面。我们要用的水面效果就在Environment(环境资源包)文件夹中,这里面包含了两种水的效果Water和Water(Basic),前者效果水更

温馨提示

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

评论

0/150

提交评论