基于Unity3d的驾驶模拟器的设计与实现.docx
《基于Unity3d的驾驶模拟器的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于Unity3d的驾驶模拟器的设计与实现.docx(39页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、摘要 随着近年来电竞业与游戏业的逐渐成熟以及规范化,游戏的受欢迎程度也是越来越高。游戏已经成为了相当一部分人在繁忙的工作学习中获得放松的最主要的途径。从2D到3D游戏,游戏画面变得越来越真实,使玩家能够在玩游戏时做到身临其境,不仅从游戏中获得快乐,甚至能得到对生活有用的知识。Unity3d是一款十分成熟的游戏开发软件。经过多年的改进与发展,Unity3d一直占据着游戏开发的市场中占有一席之地。本次课题以Unity3d为游戏开发引擎编写3D模拟驾驶类游戏,借助了NWH Vehicle Physics插件进行汽车物理系统的开发,玩家将会的到较为真实的驾驶手感体验。本课题旨在实践中学习游戏制作的基本
2、方法,探索设计游戏的基本思路。玩家需要通过键盘控制汽车,在模拟的城市场景中遵守系统设置好的交通规则,避免发生碰撞,在整个游戏过程中,玩家会在路上遇到堵车甚至撞车等路况,可以从中体验到真实的驾驶体验。该驾驶模拟器有着较高的自由度,玩家可以通过探索来发现更多的乐趣。 关键词: Unity3d 驾驶模拟 交通规则 Abstract With the gradual maturity and standardization of call competition and game industry in recent years, the popularity of games is also inc
3、reasing. Games have become the most important way for a considerable number of people to relax in their busy work and study. From 2D to 3D games, the game picture becomes more and more real, so that players can play the game in real time, not only get pleasure from the game, but also get useful know
4、ledge for life.Unity3d is a very mature game development software. After years of improvement and development, unity3d has been occupying a place in the game development market. In this project, unity3d is used as the game development engine to write 3D simulation driving games, and NWH vehicle phys
5、ics plug-in is used to develop the vehicle physical system, so that the players will have a more real driving experience.This topic aims to learn the basic methods of game making in practice and explore the basic ideas of game design. The player needs to control the car through the keyboard, abide b
6、y the traffic rules set by the system in the simulated urban scene, and avoid collision. In the whole process of the game, the player will encounter traffic jams or even crashes on the road, from which he can experience the real driving experience. The driving simulator has a high degree of freedom,
7、 players can find more fun through exploration.Key words: Unity3d Driving simulator Traffic rule 目 录第一章 绪论11.1 选题的目的及意义 11.2 研究现状 11.2.1 市场状况 11.2.2 研究内容 21.3 章节安排 2第二章 Unity引擎与插件使用说明32.1 游戏引擎介绍 32.2 Unity3d常用组件 32.3 物理引擎 32.4 Unity引擎的常用函数 42.5 UI组件 52.6 插件 5第三章 游戏设计介绍 63.1 场景设计63.1.1 地形的绘制 63.1.2 场
8、景的绘制 73.2 建筑物设计 73.3 游戏UI设计 73.3.1 图形用户界面 83.3.2 仪表盘设计 93.3.3后视镜UI设计 93.3.4 小地图设计 103.4 灯光的设计 103.5 游戏按键设置 11第四章 汽车参数的设置与说明134.1 汽车的设计 134.1.1设置WC3D 144.1.2声音 154.1.3滑痕 164.1.4灯 164.1.5损害 184.1.6翻转 194.1.7地面类型探测 194.2 具体功能实现 194.2.1汽车移动脚本 194.2.2质心 20 4.2.3下压力 224.3 UTS PRO 224.4 碰撞检测 244.5 镜头切换 254
9、.6 角色管理器 274.7 档位 284.8 Vehicle changer脚本 29第五章.游戏测试 315.1 设备环境 315.2 游戏运行结果 315.3 测试结果分析 32第六章.展望与总结 33参考文献34致谢 35广东东软学院本科毕业设计(论文)第一章 绪论1.1选题的目的及意义随着计算机科学技术突飞猛进的发展,游戏行业也被带动得风生水起。从最早的红白机系列再到稍早的主机时代,之后更是在PC端大放异彩,现在甚至我们可以在移动端玩上一些跨平台移植过来的3A大作。在这种的大环境下,游戏业也是来到了一个良性循环,越来越多的公司会将资金投入到游戏的创作与研发当中,这也使游戏市场的竞争越
10、发激烈。随着VR和5G的到来,为了抢占市场份额,游戏公司也加大力度开发各种新颖的游戏,而Unity3D这款灵活多变可供多平台的游戏开发引擎,受众非常广泛。Unity3D是由Unity Technologies开发的一款游戏引擎,【1】它也是3D游戏开发中的佼佼者。3D游戏作为目前主流的游戏类型,游戏的空间感和立体感会比2D游戏更强,而游戏的适应性以及娱乐性则会比尚未成熟的VR游戏更加强。简单来说,3D游戏就是三维游戏,它的实质是利用光线和阴影的变化通过平面来体现纵深感,使玩家能对物体产生长宽高的感觉,从而达到具有立体感的3D游戏的效果2。在众多的游戏种类中,模拟游戏是一个比较广泛的、接近生活的
11、类型。玩家可以通过模拟类游戏去体验游戏设计者所设计出的世界,一个与现实世界相似却不相同的游戏世界。仿真程度越高,意味着游戏更贴近现实,一些生活中无法遇到的状况就可以通过游戏(也可以说是模拟器)进行模拟,目前在研究方面,许多的物理现象都需要通过模拟器的帮助进行研究。退一步来说,对于平民百姓,模拟类游戏也可以对生活中无法遇到的事情进行模拟,使玩家能够从中获取到生活中没有的经验与知识。模拟类游戏正是一种可以为社会带来贡献的交互式游戏体验。本次课题也是从模拟类游戏出发,通过Unity3D这个功能强大、具有高度的跨平台适应性的游戏引擎,来制作一款模拟类的驾驶游戏3。1.2研究现状1.2.1市场状况电脑游
12、戏作为电脑的软件,在技术方面的发展与革新都需要电脑硬件的支持。其中最重要的硬件就是显卡。从九十年代末的VOODOO显卡发展到如今的RTX2080,游戏也从马赛克画质的发展到当今以假乱真的游戏画面。从DOOM到CS到使命召唤、从魔兽争霸到英雄联盟,各种类型的游戏在业界人士的努力下逐渐丰富。早年间中国由于缺乏核心技术,并没有过多自主开发的游戏,而是通过代理引进为主。虽然很多媒体吹嘘中国是在80年代接触各类游戏,但其实那都是港澳地区的盗版游戏,而中国大陆则是在90年代开始引进各类游戏。因为当时几乎没有关于游戏行业的政策,宽松的政策促使游戏市场快速增长。到了1996年,远在大洋彼岸的欧美游戏公司也参与
13、到了这种新兴行业当中,其中就有EA与育碧两间著名的游戏公司,这第一批入驻的欧美游戏公司也对中国的游戏行业带来深远的影响。到了20世纪出,正版光盘游戏由于高昂的价格以及当时国内将游戏称之为“电子海洛因”而并没有取得很好的成绩。到了2003年,我国首款自主研发的3D游戏出现,然而起步较晚的国产3D游戏从设计理念到研发制造,都与国外先进的游戏有着明显的差距。不过近年来,得益于国家政策的扶持以及技术的发展, 3D游戏在我国得以迅速发展。在如今的游戏市场中,FPS与MOBA类一直占据了主要地位,模拟类游戏则作为比较小众的类型存在。相比这两种类型的游戏,模拟现实的游戏会有真实世界的物理系统,会有更加贴近现
14、实的场景。不过近年来,这类游戏由于仿真度越来越高,并且在具有一定趣味性的情况下也收获了不少忠实的玩家,其中比较有名的就有欧洲卡车系列游戏4。1.2.2研究内容这些年来,随着群众生活水平的提高a驾驶作为一项社会基本技能,目前在中国有接近4亿人拥有驾照,然而现在的驾校为了应付考试,并不会对学员进行过多实际路况的教学,因此,有一部分新学员拿到驾照后其实还不是真正意义的学会了驾驶。模拟驾驶游戏能引领用户体验驾驶操作技能并熟悉一些在路上基本的交通规则,力求还原真实场景,并对玩家体验驾驶起到帮助。尤其是青少年用户,通过简单的操作、以游戏的模式进行模拟驾驶能够使驾驶的知识更加深入人心。根据这个要求,游戏主要
15、通过碰撞检测来实现交通规则的检测,第一人称视角的驾驶也会让玩家更加融入游戏当中。1.3章节安排本文主要围绕一款以Unity3d为开发引擎所开发的驾驶模拟类游戏,从理论到实践,共分为六章。第一章为绪论,主要介绍了选题的目的及意义、研究背景与游戏市场现状以及游戏所涉及的内容。第二章将会简要的介绍选题的研发 当中所需要使用到的平台、软件、插件。第三章将会对游戏设计内容的具体事项进行分析,明确游戏各个部分。第四章将会对游戏功能的具体实现过程进行分析,主要为脚本内容的分析。第五章将对游戏进行测试,打包封装。第六章为结论与展望。第二章 Unity引擎与插件的使用说明2.1 游戏引擎介绍游戏引擎即游戏的软件
16、框架,是为了设计游戏而专门开发出的软件框架,用户从中得到了开发游戏所需的基本功能。它的作用就等于基础设施,使用者则需要利用基础的框架实现更为复杂的产品。在这种模式下制造游戏的效率会大大地提高,但是这种便利也会带来相应的缺陷,但是对于开发者来说自由度也会相应减弱,不利于做出具有突破性的作品。Unity3d引擎由Unity Technologies 于2005 年推出,8是一款在当下炙手可热的游戏开发工具,为使用者提供了非常完美的跨平台系统以及交互良好的操作界面。它的编程语言主要是C#(少部分使用Javascript),它的功能十分完善,从小型独立游戏,到千万级的3A大作,Unity都能支持制作,
17、并有很好的效果。2.2 Unity3d 常用组件GameObject:场景中所有的实体都为GameObject 类。Transform:用于控制和储存对象的位置,旋转,缩放,及控制游戏对象的父子关系。Rigidbody: 用于物理引擎控制,刚体组件会对作用力作出符合物理规律的反应。Collider:定义了物体的物理性状,可在一个对象中挂载多个碰撞体达到更真实的效果。Mesh renderer:网格渲染器可以使个体在场景变得可见、呈现渲染后的效果,也可以为其添加材质。NavMeshAgent:用于AI 的移动,避开障碍物。2.3物理引擎早期游戏并没有过多注意物理引擎的作用,当时几乎所有游戏,都通
18、过极简的计算方式得出对应的结果从而体现出物理效果,比较有名的游戏为马里奥和索尼克等。当时的物理效果也仅仅是与墙壁相关的碰撞。 当2D游戏逐渐演变成3D时代后,物理效果的表现方式也发展迅速,三维的表现力大大地增加了游戏发展的可能性,使游戏种类向多方向发展 11 。Unity采用了英伟达的Physx物理引擎,这是一款目前广泛应用在各大游戏当中的热门物理引擎。如今的开发者只需要将参数设置好就可以通过物理引擎高效、拟真地模拟各种各样的物理效果,得到真实生动的游戏画面。在 Unity 3D驾驶游戏当中,物理引擎是整个游戏的核心,它主要包括了刚体、碰撞、物理材质等。游戏中物理引擎的作用是模拟场景中的物体相
19、互碰撞作用。对于成熟的物理引擎,实现物体之间相互影响的效果是相当简单的。2.4 Unity 引擎的常用函数Unity3d 作为一个高度集成的引擎,在实现很多功能之时, Unity 所提供的函数就可以很好地完成。在本次的游戏开发中将会使用当不限于以下常用函数。3Awake:初始化函数,在脚本实例化的时候自动进行调用,只会在脚本的生命周期中调用一次。一般用于各个组件之间添加引用关系。Start:初始化函数,在对象被第一次enable之后,在Update 之前,Awake之后被调用。在生命周期中也只会调用一次。一般用于富裕变量值。Update:每运行完一次会再一次调用,跟游戏帧率相关。一般用于普通的
20、数值监测亦或是按键输入后执行动作的触发点。FixedUpdate:每隔一定的时间调用(取决于游戏设置的每秒刷新次数),不会受到游戏帧率影响。常用于物理引擎的调用,以及需要固定时间更新的函数。当碰撞发生时,挂载在物体上的脚本中被定义到的函数,都会通过物理引擎进行调用。OnTriggerEnter:函数会在第一次碰撞检测后调用,执行一次函数内的内容,用于判定物体触碰到角色。OnTriggerStay:函数会在持续碰撞的过程中多次被调用,一直函数内的内容。OnTriggerExit:表示碰撞事件结束了,用于物体离开碰撞体。 2.5 UI组件事件触发器组件:事件触发器是一个将Unity所有UI交互需要
21、用到的触发功能都集合在了一起的组件。它包含了所有UI交互的相关功能,用户可以通过编辑界面,将交互功能进行定义。通过回调内容驱动,在无需操作的时候就可以不占用计算机的资源。并且可以分配多个函数到单一事件8。IEventSystemHandler(事件处理程序)事件触发器的作用是识别用户的输入,是Unity的事件处理程序的功能。在代码中添加动态的按钮的事件需要通过代码上的接口。它具有以下特性:1、通过Interface接口添加事件功能。2、需要得到挂载了IEventSystemHandler类型的脚本的显示组件的支持。3、支持自定义事件监听器8。2.6插件NWH Vehicle Physics是一
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Unity3d 驾驶 模拟器 设计 实现
限制150内