版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1.1选题的背景与意义1.1.1选题的背景市场中速度增长最快的成长点,是大众和媒体所关注的一个焦点。2019年,中国的电子游戏行业同比2018年营业经济同比增长了27.1%。其中王者荣耀、荒括了大部分年龄段的人们。目前市场上的3D游戏多数以提供团队作战,加入聊Unity3D是可以应用于虚拟游戏制作、虚拟实验、建筑可视化、虚拟军事这些具有综合型性能的可以实现互动的创作工具。利用Unity3D引擎来开发的第三人称3d游戏有着下面三个好处:1)可以一次开发,用于多平台发布:Unity是一个交互式游戏引擎,可以PC、IOS等23个平台进行发布,在开发成本和时间上有了很大程度节省,又可3)软件功能十分齐全,可以大大缩短开发时间:优于Unity3d引擎简单易使用,更有AssetStore免费提供开发所需的一些资源。能满足人们的很多需方面也有举足轻重的占有率。但尽管Unity3D引擎进入中国已经接近10年而且鲜事物,但本文研究基于Unity3D的3D射击游戏开发由于能增加质乏的研究资1.3国内外发展现状Unity3D是可以应用于虚拟游戏制作、虚拟实验、建筑可视化、虚拟军事这目前,尽管国内有了很多知名的3D游戏,但是,由于国内3D技术起步较晚,在计师们对游戏的设计理念和游戏开发制作,国内能够运用自主研发做大型3D游定的发展前途的。总体来说,Unity3D在国内已经起步。Unity3d引擎于2009年支持window版本。在2010年,它开始支持android来扩大其优势。它拥有十引擎在国内外额使用十分广泛。随着3d虚拟现实技术的飞速发展,在很多的领域都得到了完美的应用,虚拟现实是21世纪非常重要的科学发展技术。我们从直在奋起直追,3D虚拟现实场景模型的制作也正在前进的道路上飞速发于可以成功做出一款运行在PC客户端的第三人称射击游戏,在这个游戏中,游2.1开发工具在这里详细介绍一下Unity3D,它是由丹麦Unity公司开发的一个游戏开发工具,不仅具有十分强大的跨平台发布能力,可以在23个平台上进行发布而且率。Unity3D是利用交互的图型化开发环境为首要方式的游仅支持各种格式、多种脚本,还能进行一键部署与渲染重写。这就是Unity3D引擎与其他游戏编辑软件的不同之处。因为它的游戏编辑器能够运行在IOS和2.2开发环境Unity3D(以下简称U3D)作为-款3D游戏引擎。1)拥有着异常优秀的跨平台系统。产品的开发速度和进度因为各个平台之间的差别而常常会受到影响,但unity引擎可以让开发者所写的程序在23中平2)unity3D以前提供三种语言来写脚本,分别是C#、javascripts、boo脚本语言来书写,但是从17年之后就只支持C#、boo脚本啦,所以现在市场上MicrosoftVisualC#(读作Csharp)是一种常用的编程语言。C#语法很简单、MicrosoftSQLSever,它还支持IBM,Oracle数据库等。表2-1相应配置表Table2-1Configura名称软件或硬件版本或配置的要求软件DirectX驱动软件3.0及以上个人电脑显卡2G以上内存3.系统的需求分析设计和可行性研究2)技术可行性3)经济可行性4)操作可行性5)法律可行性6)可行性研究结论合你的那一种。视图分布选项在工具栏中的windows->Layouts里进行选择。Game图4-1视图选择单的一种方法,只需要在工具栏中选择File->NewScene就可以创建一个新的场景。之后点击Gameobject->3DObject->Terrain从而得到一个地面,我们可图4-2创建地面我们可以通过选择不同的工具在地图中进行山体与丘陵的绘制,可以Height设置山体的高度值,通过BrushSize进行笔刷的尺寸选择方便我们进行更细节的绘制。并且可以通过点击Flatten进行反向高度的选择,我们可以通过它来进行河流与湖泊的绘制图4-3绘制工具图建好一个平面之后我们需要的是将平面中间的部位运用高度工具进行凸出,因为我们制作的是小岛地图,所以我们要在场景面板中选择地面对象,选择完地具(PaintTexture)导入地形纹理资源并将纹理资源添加到纹理工具的纹理列图4-4初步地形绘制Figure4-4PreliminarytopographicrFlag_1AirshipCargo_Pac.Cargo_Pac.Control_Flag_1图4-5物体资源列表Figure4-5ObjectResource图4-6局部地图图4-7整体地图图4-8人物模型11图4-9添加刚体组件AirSpeedoO图4-10添加组件Figure4-10AddingComp们首先要建立一个脚本叫做CameraFollow,保持默认。接下来我们要建立三个1)被跟踪对象(TransForm组件)。2)相机跟随的平滑速度(数值越大相机反应越快。3)相机与被跟踪对象的相对位置,也叫偏移量。完后在Start函数里面,计算初始时刻,相机与被跟踪对象的相对位置。在EusingSystem.UolleusingSystem.Collections.Generic:offset=transform.positiontransform.position=Vector3.Lerp(transform.position,pos,speed*Time.deltaTime图4-11相机跟随部分源码Camera的FieldOfView让其渐大渐小来实现。当玩家瞄准的时候,只需要将FieldOfView变小,停止瞄准的时候,再将FieldOfView恢复成原来的大小图4-12瞄准镜缩放效果CharacterController(角色控制器)是Unity3D中角色移动系统的基层组件,利用它可以获取角色移动时碰撞面的法向量(groundNormal),与设置角色能够行在上述基础上可以看出1)人物的移动可以分为两中角度进行计算一种是水平方向的移动,也就是是实现人物角色的跳跃。2)对象旋转:对象旋转的方式可以分为三种,沿水平面旋转、沿竖直轴旋转和自由旋转。之所以将旋饰方式分类是为了适应游戏中的不同情况。例如,玩家转向后方然后将枪支指向天空这-动作中,玩家的转向是沿水平面旋转,枪支的转向是沿竖直轴旋转。自由旋转由于设计中不存在适合自由旋转的物体,没有得到体现。本游戏是通过Input.GetAxis来得到人物位置的横纵坐标,并编写新的函数,设置一个移动速度,乘以时间间隔来获取新的坐标位置,并将人物移动到该位置。floath=Input.GetAxis(voidMove(floath,floatv){rb.MovePosition(transform.position+targetPos);voidTurning(){Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);if(Physics.Raycast(ray,outhit,camRayL,floorMask)){Vector3playerToMouse=hit.point-transform.position;QuaternionnewRot=Quaternion.LookRotation(playerToMouse):rb.MoveRotation(new图4-13人物移动旋转方法完后我们要进行对人物主角添加动画效果,在Inspector面板中找到图4-14人物动画效果添加Manager(Script5oO55◎0这样就可以系统自动生成敌人并出现在地图中,我们可以在敌人脚本中写上曰曰白usingUnityEngine;publicfloatspaInstantiate(enemy,spawnPoint.positi图4-16生成敌人Figure4-16GeneratiusingsysLem.CUileUusingUnityEngine.AI;privateTransformplayer;曰//Usethisforinitiaagent.destination图4-17给敌人添加导航敌人设计的最后我们要给敌人添加生命值和攻击力并设置其攻击范围和各种状态下的动画首先,建立一个EnemyController脚本,设置怪物的攻击力,初始生命值,并设置其攻击范围,当人物角色进入其攻击范围时将对人物进行攻if(timer>=attackSpeedif(player.GetComponent<PlayerController>().voidOnTriggerEnter(Colliderotherif(other.tag==“PlayvoidOnTriggerExit(Colliderother){if(other.tag==“Play我们在导入怪物模型的时候模型带有特定动作的动画,例如行走、攻击、死亡、原地不动时的不同状态的动画,我们需要在unity里面找到图4-19寻找动画逻辑Figure4-19FindingAnimati在Inspector面板中找到Animator选项中的Controller点击进去,导入模型EnemyController脚本里编写当怪物出现不同怪物生命值低于0时就执行死亡动画的播放,并且在里面添加敌人收到攻击伤害图4-20给敌人添加动画效果Figure4-20Addinganimationeffectsto图4-21武器模型到以下几个组件:核心代码如下图:曰曰//Usethisforinitializaline=GetComponent<LineRenderer>():timer+=Time.deltaTime;if(Input.GetButton("Fire1")&&timer>=timeBetweenBullet){图4-22给武器添加组件Figure4-22AddingComponentstoWeapons}publicvoidDisableEf}line.SetPosition(0,transform.position)://从枪口开始shootRay=newRay(transform.position,transform.forward)://射线EnemyControllerenemyCtrl=shootHit.collider.GetComenemyCtrl.BeAttack(damageShoot,sh}line.SetPosition(1,shootR}图4-23添加粒子特效图4-24手雷模型Figure4-24GrenadeFreeAspectFreeAspect图4-25手雷技能1)检测两个圆有没有相交。2)检测Y轴的距离是否小于球半径+圆柱体高度的一半。这里是把球体也当3)立方体跟圆柱体的碰撞图4-26立方体和圆柱体的碰撞Figure4-26CollisionofCubesandCylinders计算方法是先找到举行上里圆形最短距离u,然后比较u是否小于圆形的半图4-27碰撞计算过程2.然后,把v减去h,负数的分量设置为0,就得到圆图4-28碰撞计算结果Figure4-28CollisionCalcUnity3d中进行碰撞检测需要为物体先添加上胶囊体,在Unity3D引擎中其实都封装好了一些Collider组件去进行完物体的碰撞检测之后我们还要在update函数里要对鼠标进行位置监方法{}{//获取服标在相机中(世界中)的位置,转焕为屏幕坐标screenPosition=Camera.main.WorldToScreenPoint(transform.positiomousePositionOnScreenmousePositionOnScreen.z=screenPositionmousePositionInWorld=Camera.main.ScreenToWorldPoint(mousePosi//transform.position=mousePositionInWorld;//物体跟随原标轴移动transform.position=newVector3(mousePositionInWorld.x,transform.position.y,transform.position}图4-29获取鼠标位置图4-30添加技能特效图4-31怪物攻击人物Figure4-31MonsterAt表4-1制作血条步骤操作步骤一我们在Canvas下面创建一个Slider对象,右键点击UI-Slider, 选中Slider,调整Slider的Scale大小X:0.02、Y:0Slider的位置以适应角色对象。这里,我们注意到S个子物体,这里我们先去掉HandleSlideArea。步骤二接下来BackGround是我们Slider的背景,可以控制色,FillArea是我们血条的覆盖色,在这个对象下面还有个Fill对 该对象有个Image组件,修改Imgae的Colo了,这里我们可以选择自己的项目所适应的颜色来选择不同的颜我们回到Slider组件,我们再Inspector面这里,我们看到有个Directon来控制血条的方向,MinValue表示最小值,MaxValue表示
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025至2030年中国纺织空调轴流风机数据监测研究报告
- 2025至2030年中国打印机油墨数据监测研究报告
- 2025至2030年中国六角金葱片数据监测研究报告
- 2025至2030年中国Puma罗茨真空泵数据监测研究报告
- 2025年中国晶体管恒电位仪市场调查研究报告
- 2025年中国大型超市冷库市场调查研究报告
- 外源褪黑素对番茄根系形态建成调控作用的研究
- 2025年度摩托车零部件回收利用合同范本4篇
- 二零二五年度养老服务机构用品采购合同4篇
- 二零二五年度有机棉花生产与销售合同4篇
- 2025水利云播五大员考试题库(含答案)
- 老年髋部骨折患者围术期下肢深静脉血栓基础预防专家共识(2024版)解读
- 中药饮片验收培训
- 手术室专科护士工作总结汇报
- DB34T 1831-2013 油菜收获与秸秆粉碎机械化联合作业技术规范
- 苏州市2025届高三期初阳光调研(零模)政治试卷(含答案)
- 创伤处理理论知识考核试题及答案
- (正式版)HG∕T 21633-2024 玻璃钢管和管件选用规定
- 《义务教育数学课程标准(2022年版)》测试题+答案
- 残疾军人新退休政策
- 白酒代理合同范本
评论
0/150
提交评论