版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要关键词:UnityMVC设计模式塔防游戏
AbstractGameperformanceoptimizationbecomingmoreandmoreimportantingamedesignwiththetrendofInternetInformationshapeExplosionandmutualfacilitiesrapiddevelopment.Thissubjectfusestheprogramdesignmodeandpracticalutilization,usingtheMVCframeingamedevelopmenttoutilizeandresearch,byaTowerDefenseGame.BecauseTowerDefenseGame`sinstantdataisextremehugeandhashighdemandtosystem,usingTowerDefenseGamecanreflectthefunctionofMVCframeobviously.AndthetechnologydifflicultyisthepracticalutilizationofMVCframe.EventhoughMVCframehaslotsofadvance,suchaslowcoupling、highintegration,themostseriouslyshortcomingisit`scoreframeneedsadjustindifferentproject.Thatmeansthedifferentpeojectneedsdifferentframe.Werequiremodifytheframebaseonourrequirement,anddosomedeleteorrebuildinnecessary.Keywords:UnityMVCTowerDefencesGame
目录第一章绪论 第一章绪论选题的背景、目的和意义1.1.1选题背景游戏开发可以说是当前互联网行业中的一个风口,而游戏优化则是困扰广开发人员的一个痛点。可能一个游戏在玩法上足够有创意,在画面上足够的精细,但就因为一个优化问题,例如卡顿、丢包等,造成了玩家的体验极差,所以针对游戏的特点优化,也是游戏开发中的一个重点,而设计模式的引入则是游戏优化的一个解决思路。因为塔防游戏UI渲染部分所占得性能效果比较大,所以本课题则着重于UI部分,通过将MVC设计模式的引入,从而设计出一套高效得UI显示系统,降低游戏运行的性能消耗。1.1.2选题目的和意义设计模式代表了最佳实践方式,并且大多数由面向对象的软件开发人员采用。简而言之,设计模式是针对软件开发人员在软件开发过程中面临的问题,结合前人的总结所结合的解决方案。可以将其理解为逻辑实现的模板。通过让软件或者程序遵循设计模式进行开发,可以避免许多出错的情况,而且设计出来的系统的逻辑性与条理性能有大大增强,这就是为什么大部分软件的开发都系遵循其逻辑。而在本项目中,主要是通过引入MVC设计模式,专门针对游戏中的UI交互层进行设计。为什么要把UI层的交互引入设计模式呢,这是因为在游戏中,通常都需要对交互层进行刷新,例如敌人的生命力、攻击力、还有一系列的图标,而且选择用Unity3D传统的Gameobject/Component模式,其代码的冗余会比较多,会造成消耗较高,而引入MVC模式对交互进行设计后,就将传统的业务逻辑按View、Model、Controller三个层次进行剥离,尽可能地降低代码直接的耦合度,从而实现一个高效的系统,降低游戏运行的性能消耗。1.2课题研究思路故事背景制定:编写游戏的故事背景,细分到不同关卡之间的故事引导,为游戏的角色、场景、UI、CG等要素奠定好基础。模型设计制作(角色/场景):使用3DSMAX,根据故事背景中的基调,对游戏中所需要的角色、场景模式进行设计,制作出一套符合游戏规划且与故事风格基调先呼应的模型。CG动画制作:基于故事的故事背景,先利用Unity3D中的Timeline和Cinemachine工具进行动画录制,再通过AdoebeAfterEffect对动画进行后期处理(调色、特效),目标是制作出一套高水准的CG以及场景过渡动画供游戏内使用。UI素材绘制:基于模型素材风格,利用AdobePhotoshop进行UI按钮、背景素材等的设计与制作,目标是UI与模型高度呼应。战斗逻辑实现:这是游戏的核心功能,基于塔防游戏,其核心逻辑概括为两部分,一部分是敌人进攻,另一个则是玩家防守。通过Unity3D引擎,利用其物理组件、渲染组件等,结合C#代码,编写出一套耦合度低、聚集度高的游戏系统。交互功能实现:引入软件开发中的MVC设计模式,把业务逻辑间的绑定接触,使UI层、数据层、逻辑层相互剥离,再根据实际项目情况对模式进行优化,目标是实现一套资源消耗低、渲染效率高的UI交互系统。代码重构优化:代码重构是软件开发中后期阶段的任务,结合本项目,就是间战斗逻辑与交互功能的代码进行重新编辑,针对一些冗余代码、重复代码进行精简,并结合Unity3D引擎特性,对游戏渲染、物理系统等方面进行人为干预,以提升游戏的整体流畅度。1.3论文提纲第一章绪论:陈述本项目研究的背景要素、研究方法以及论文的提纲,以及介绍与项目中有使用到的工程工具第二章游戏设计:介绍游戏的风格、故事背景、场景元素,以及相关数值设计。第三章游戏实现:按角色模型设计、场景设计、UI设计、代码实现、渲染特效、CG制作六大部分一步步介绍游戏的实现流程。第四章游戏成品展示:示项目的最终成果第五章总结与回顾:总结在游戏开发与测试过程中,遇到的哪些技术问题,以及在整个项目过程中,收获到了什么。1.4相关技术工具1.4.1UnityUnity
是一款由UnityTechnologies公司所研发的游戏引擎,其拥有一系列的强大功能,例如:物体模拟、动画系统等,并且其使用图形化的界面,有着良好的用户上手体验。 1.4.2MicrosoftVisualStudioMicrosoftVisualStudio是微软公司的一系列开发套件产品。VS是一个基本的完整开发工具集,其中包括整个软件生命周期中所需的大多数工具,例如UML工具,代码控制工具,集成开发环境(IDE)等,编写的目标代码适用于Microsoft支持的所有平台。 1.4.3Autodesk3DSMaxAutodesk3dsMAX具有易于使用的界面设计,上手既快速又容易。安装插件可以提供3DStudioMax中不可用的功能并增强原始功能。并具有强大的角色动画制作能力,可堆叠的建模步骤,使得模型具有极大的灵活性。 1.4.4AdobePhotoshopAdobePhotoshopPhotoshop主要处理由像素组成的数字图像。借助其许多编辑和绘图工具,您可以更有效地编辑图片。独特的历史记录浮动窗口和可编辑的图层效果功能使用户可以轻松测试效果。支持各种滤镜,使用户可以轻松创建各种奇妙效果。1.4.5AdobePremiereProAdobePhotoshopPhotoshop主要处理由像素组成的数字图像。借助其许多编辑和绘图工具,您可以更有效地编辑图片。独特的历史记录浮动窗口和可编辑的图层效果功能使用户可以轻松测试效果。支持各种滤镜,使用户可以轻松创建各种奇妙效果。第二章游戏设计2.1游戏名称、风格、主题、背景2.1.1游戏名称、主题、风格游戏名称:《海洋战纪》游戏主题:海洋保护游戏风格:《海洋战记》是一款Q版风格的具有海洋特色元素的游戏。本游戏画面以Q版的卡通画风为主,包括角色,场景,特效等;音乐配合画风,则是以轻快的旋律为主调,让玩家在体验过程中轻松愉悦,抛弃传统游戏的包袱感。2.1.2游戏故事背景海洋王国,一片湛蓝的土地,各种海洋生物都在那里生息繁衍,人民安家乐业,过着简单而宁静的生活。直到有一天,在王国边陲的小镇上,人们看到了一股红色的陨星划破了湛蓝的天空,深蓝的海水逐渐变得浑浊,一群黑影突然从天而降,人们还没缓过神来,一群骷髅士兵就冲进了小镇,它们不停地用塑料垃圾攻击小镇的居民,人们落荒而逃。紧接着身后,还有一群哥布林士兵,它们的体型魁梧,带着好几个油桶,只见它们两三下就将油桶连接起来——那是油桶火箭炮!它们瞄准那些建筑物,BOOM!地一声巨响,原本亮丽的建筑就笼罩在厚厚地油泥之下……不到一会儿,从前的小镇已不复存在,只剩下一片满目苍夷的废墟,各种垃圾散布在街道,到处都是黑漆漆的油泥,周边都是发黑的海水……这时,那群入侵者中突然闪过一道黑影,一个巨大的声影出现在了,“小的们,干得好!干得好!从今天起,海洋王国不复存在了,这将是我们‘污染军团’的天下!”……保卫海洋的战争,开始了。 2.2游戏关卡设置 关卡的参数主要有:敌人生成波次,敌人生成速率,以及敌人的类型和敌人的数量组成,每一关卡中都会生成四波敌人,具体敌人的强弱如表格设置,另外每一关卡的难度按顺序会依次递增。表2-1游戏关卡设置参数关卡敌人生成波次敌人生成速率敌人类型&敌人数量第一波第二波第三波第四波第一关33一阶哥布林士兵/15二阶骷髅士兵/15三阶骷髅士兵/20四阶骷髅士兵/20第二关43二阶骷髅士兵/25三阶骷髅士兵/23四阶骷髅士兵/21一阶哥布林士兵/25第三关52一阶哥布林士兵/25二阶骷髅士兵/30三阶骷髅士兵/30四阶骷髅士兵/30第四关51一阶哥布林士兵/10二阶骷髅士兵/40三阶骷髅士兵/30四阶骷髅士兵/4第五关60.9一阶哥布林士兵/10二阶哥布林士兵/15三阶哥布林士兵/20四阶哥布林士兵/25第六关60.8一阶哥布林士兵/20二阶哥布林士兵/20三阶哥布林士兵/25四阶哥布林士兵/252.3游戏流程设置 游戏流程共分为9个逻辑,分别为开始游戏、故事引导、选关操作(NPC对话)、关卡选择、游戏加载过渡、游戏操作引导(NPC对话)、游戏开始(第一关)和游戏结束。表2-2游戏流程设置流程顺序描述备注开始游戏点击“开始游戏“按钮开始游戏故事引导播放游戏故事概要加载过渡无需操作场景跳转过渡选关操作(NPC对话)对话1:大人!紧急情况,污染军团离皇宫仅剩一步之遥!请求支援!点击“继续“按钮进行下步对话&仅在第次打开游戏时启动对话2:出击之前,我来快速介绍一下王国情况。对话3:海洋王国由皇宫,6座城池与外围城墙组成,前期王国兵力不足,污染军团势如破竹,已经攻打到第六座城池,下一步就是直捣皇宫。对话4:如果皇宫被占领,我们这个海洋王国都将被污染,这是我们最后一道防线。对话5:红色标记处就是皇宫,绿色标记处则是外围城墙对话6:红色标记处代表污染军团占领的区域对话7:大人,我们只有将污染军团甘出王国,我们的家园才有希望!请求出击对话结束关卡选择鼠标左键点击图标,即可加载关卡游戏加载过渡无需操作,播放通关技巧等内容游戏操作引导(NPC对话)对话1:大人,下面将由我带你进行游戏引导点击“继续“按钮进行下步对话&仅在第次打开游戏时启动对话2:鼠标滚轮控制游戏视野缩放,鼠标左键负责点选操作对话3:介绍界面属性。武器选择面板、武器属性面板、升级/拆除操作面板、场景属性面板、功能面板(暂停、声音、退出)对话4:介绍如何建造炮台。对话5:介绍如何升级&拆除炮台。完成。游戏开始(第一关)玩家进行游戏游戏结束成功/失败。成功→下一关/失败→退出或重新开始如此循环2.4游戏机制设置初次游戏引导:初始游戏时,数据库中数据将会进行初始化,在“关卡选择“和”关卡一“场景中会对玩家进行操作引导。仅在第一次开始游戏,以及存档重置时会进行引导。敌人生成:每一关卡开始前会有3秒的缓冲时间(第一次开始游戏会有引导界面),倒计时结束后敌人开始生成,生成的速度则是按照已经设定好的敌人生成速率,按一定间隔进行生成。当当前波次的敌人被消灭后,下一波敌人才会生成,如此类推,直到所有波次的敌人都被消灭,则通关成功,可以进入下一关卡。炮台(武器)建造:首先,需要玩家先点击选择要建造哪种炮台,选择好后将鼠标移动到游戏场景中,当鼠标移动到塔台上,塔台将变成橙色,表示当前塔台可以建造炮台。鼠标左键点击确定,炮台就会开始建造,根据不同炮台建造所需要的时间不同,不同炮台建造的快慢也不同。炮台(武器)攻击:炮台建造完成后,将自动对范围内的敌人进行攻击。攻击的逻辑是就近原则,每个炮台会对第一个进入攻击范围内的敌人开始进攻,直到第一个进入攻击范围内的敌人被销毁后,才会对后一个敌人进行攻击,如此迭代。炮台(武器)升级:升级操作只针对已经建造好了的炮台。在游戏场景中点击已建造的炮台,会出现黄色的标记,表示已选中的炮台,并且左上角会出现炮台信息,显示当前炮台是否升级过了,如果当前炮台没有升级过,右下角的升级/操作按键就会变亮(如果炮台升级过的,那只有拆除按键会变量,升级按键则是不可操作状态),表示可以执行操作,鼠标左键点击确定,等待相应的升级时间,即可完成炮台的升级操作。炮台(武器)拆除:和升级操作一样,先点选炮台,然后右下角的升级/拆除按键就变亮,表示可以操作,点击拆除,炮台即会被拆除,拆除操作完成。失败条件:每一关卡中,敌人都从“起点—终点“进行移动,正确情况下敌人应该在移动过程中被消灭,如果敌人到达了终点,即通关失败。通关(胜利)条件:消灭关卡中所有敌人,完成即可开启下一关卡。2.5游戏数值设计2.5.1敌人数值设计 敌人的数值参数主要有四个部分,首先移速,决定了敌人发起进攻时的移动速度;其次是血量,代表着敌人的强弱(因为敌人无攻击力);携带污染物类型代表敌人象征那种垃圾污染物;而击败获得的金币能让玩家升级、建造炮塔;而特点则会在加载游戏中显示出来。表2-3敌人数值设置参数敌人名称移速血量携带污染物击败获得金币/特点一阶骷髅士兵10100罐头垃圾10金币/移动速度快血量少二阶骷髅士兵12130废弃塑料垃圾15金币/移动速度较快,血量较少,以群体进攻为主,数量多三阶骷髅士兵12170白色污染物20金币/移动速度较快,覆盖有铠甲血量较高,较难消灭四阶骷髅士兵15150纸制品垃圾20金币/移动速度快,但相对血量较低,因为移速高,突防能力强一阶哥布林士兵17200浮木垃圾25金币/相对骷髅士兵,哥布林士兵的移速上升突防能力更强,而且血量也有进一步提升二阶哥布林士兵18200食物垃圾25金币/血量不变的前提下移速加快了,具有更强的突防能力三阶哥布林士兵19350金属垃圾30金币/将金属垃圾转变陈自身的铠甲,所有拥有最高的防御力,但同时因为铠甲厚重,导致移动较慢四阶哥布林士兵22250废弃化学桶30金币/携带化学桶,相对油桶重量更轻,所以移动速度较快,但血量也会第一点五阶哥布林士兵24200纸皮垃圾35金币/仅仅携带纸皮垃圾,拥有最高的移速,突防能力是无与伦比的,但由于缺乏护甲,所以其血量也较少六阶哥布林士兵20300废弃油桶35金币/因为携带大型油桶,所以其移动速度较慢,但不可小觑的是它的血量,300的血量仅次于三阶哥布林战士 2.5.2武器数值设计 武器的数值参数主要有七个部分,状态有两种:升级和未升级;威力代表了攻击力;射速则代表了攻击速度;攻击范围代表能攻击的最远时间;建造时长相当于cd;建造金币分两种:未升级所需金币和升级所需金币。表2-4武器数值设置参数武器名称状态威力射速攻击范围建造时长建造所需金币升级所需金币玄武重炮未升级10701025070已升级2080102龙虾飞弹未升级3060837090已升级407083海星激光未升级50持续性攻击6490110已升级70持续性攻击84
第三章游戏实现3.1角色模型设计在3DMAX软件中对模型的外观进行雕刻,通过鼠标,控制矩形的顶点、面以及边线,雕刻模型的线条,控制鼠标在顶点上点击,并向xyz轴移动,即可调整顶点位置,其他同理。具体如下图3-1所示。图3-1选择模型顶点在3DMAX软件中,选择编辑器命令,然后点击面命令,就可以对模型的整个平面进行修改操作,通过鼠标控制xyz三向坐标轴,就可以面进行更细致的操作。具体如下图3-2所示。图3-2选择模型面模型基本的外观形状处理完后,开始对模型绑定骨骼。先创建一个Bipe(人性骨骼),然后选择修改器,通过蒙皮命令,讲角色人物模型与刚刚创建的Bipe骨骼进行绑定,最后就到了最为关键的步骤,编辑封套,通过点选骨骼,切换到顶点模式,然后对骨骼所控制的蒙皮顶点通过框选工具进行选择,接着打开权重工具,对所框选的蒙皮顶点赋予权重。这一步之所以那么关键,是因为在unity中,模型的动画基本都是由骨骼动画控制,骨骼又控制着蒙皮,所以模型动画的效果理不理想,很大程度去取决于蒙皮的细致程度。具体如下图3-3所示。图3-3模型与bipe骨骼在3DMAX软件中,选择封套命令,编辑封套,选择权重工具(笔刷),并且最重要的一点是,开启权重绘制命令,就可以修改模型蒙皮的权重。具体如下图3-4所示。图3-4编辑模型封套蒙皮制作好后,可以进行贴图绘制。先通过UVW展开命令,把模型的UVW贴图导出。然后打开Photoshop,对uvw贴图进行上色,最后导进3DMAX中,完成制作。具体如下图3-5所示。图3-5渲染导出模型UVW贴图最后,把ps导出好的tga贴图加入场景,ctrl+m选择简易材质工具,把贴图赋予模型中(非骨骼),再旋转视角检查贴图,士兵的完成体模型就制作完成了。具体如下图3-6所示。图3-6制作好的模型成品展示1)玩家角色。共三个,一个是龙虾飞弹炮台(发射龙虾导弹)、一个是玄武重炮炮台(发射玄武机关弹),最后一个是海星激光炮台(发射海星射线)。具体如下图3-7所示图3-7制作好的玩家角色2)敌方角色。共四个,一个是一级骷髅士兵(污染源是塑料废品),,一个是二级骷髅士兵(污染源是纸废品),一个是三级骷髅士兵(污染源是腐烂木头),最后一个是四级骷髅士兵(污染源是石油)。具体如下图3-8所示。图3-8制作好的敌人角色3.2场景设计3.2.1游戏地形设计地面制作:在3DMAX软件中新建一个扁平的矩形,然后对矩形的外观进行雕刻,通过鼠标,控制矩形的顶点、面以及边线,雕刻模型的线条,由于整体都是低多边形的风格,所以只要简单处理就能达到一个凹凸的效果,地面一共制作3个,届时在引擎中通过组合形成不同的地面(不同关卡中)。具体如下图3-9所示。图3-9小块地形地形总共有三种,一种是平坦的地面,一种是稍微有起码的地面,最后一种是以凸起较多为代表的小山地,三种地形相互组合,形成场景。具体如下图3-10所示。图3-10制作好的地形岩石制作:在3DMAX软件中新建一个底面比较小但高度比较高的矩形,然后对矩形的外观进行雕刻,同样通过鼠标,控制矩形的顶点以及边线,雕刻出模型的线条。这样的岩石一共制作4个。具体如下图3-11所示。图3-11岩石的面岩石总共有四种,一种是整体都比较尖锐的岩石,一种是带平面的岩石,一种是平缓的岩石,最后一种是以凸出较少的小岩石,四种岩石可相互组合。具体如下图3-12所示。图3-12四种岩石地面岩石:第二步一样,先在3DMAX软件中新建一个底面比较小但高度比较高的矩形,然后对矩形的外观进行雕刻,同样通过鼠标,控制矩形的顶点、面以及边线,雕刻出模型的线条。具体如下图3-12所示。图3-12地面岩石地面植被:前几步的制作流程是一样,先在3DMAX软件中新建一个底面比较小但高度比较高的矩形,然后对矩形的外观进行雕刻,同样通过鼠标,控制矩形的顶点、面以及边线,雕刻出模型的线条。具体如下图3-13所示。图3-13地面植被贴图绘制(以水草为例):过UVW展开命令,把模型的UVW贴图导出。然后打开Photoshop,对uvw贴图进行上色,最后导进3DMAX中,完成制作。具体如下图3-14所示。图3-14水草的uwv贴图最后,将ps导出好的tga贴图加入场景,ctrl+m选择简易材质工具,把贴图赋予模型,再旋转下视角检查贴图是否正确,这些一个完整的水草模型就制作完成。具体如下图3-15所示。图3-15制作好的水草最后把所有模型导入unity中进行模型组合。首先,将3个底层组合成一个大的地面。接着,把岩石拖入场景中,新建一个空物体作为岩石的父对象,岩石的gameobject拖动到父物体下,然后以一个圆形为分布形状,将岩石包围式排列在地形得两边,到这里,基本得地形就制作完成了,然后对地形增加一个细节美化。在地形中的部分凹陷处和突出处摆放一些地形岩石,并且对场景中所有的岩石组件,都附加一些细小的、珊瑚状的小石块,让场景更为真实,更像一个海底峡谷。最后,为地形添加一些植被,把珊瑚、海藻、树的预制体,随机复制添加到地面上。最终呈现的效果如下图3-16所示。图3-16整体场景敌人进攻轨迹。在Unity中新建一个矩形(以下称:轨迹条),然后按”R”快速调整其大小,使其变成修长的条形物体,然后根据地形,将轨迹条两两摆放在敌人移动路径的两边,接着再跟住轨迹条接合的距离,单独对其调整长度。接下来,让轨迹条更加明显,新建一个material材质,shader项选择diffuse,并颜色选择天蓝色,最后把材质球赋予到轨迹条。具体如下图3-17所示。图3-17场景轨迹线敌人进攻轨迹方向箭头提醒。在3DMAX软件中,选择样条线,勾勒出一个箭头的横截面,然后闭合样条线,对其使用挤出命令,形成一个三维的形状,然后导出到Unity中。在Unity中,新建一个父对象作为容器,然后把箭头的模型按一定数量放到敌人进攻的轨迹上。同样,为了让箭头更加明显,新建一个material材质,shader项选择transpareents/diffuse,颜色选择玫红色,最后把材质球赋予到轨迹条。最后,新建一个Animatior(动画状态机),然后在时间轴的起到,把箭头所属材质的透明度设置成“0”,30帧处透明度设置成“255”,30帧处透明度设置成“0”,这样就完成了箭头的动画。具体如下图3-18所示。图3-18场景轨迹线炮台制作。先在3DMAX软件中,新建一个底面积较小,但高度较高的矩形,然后将矩形按高度分层,接着将模型转换成可编辑多边形,通过控制模型表面的线段,面、顶点等元素,对模型外观进行雕刻,然后导出到Unity。具体如下图3-19所示。图3-19炮塔的面城墙制作。先在3DMAX软件中,新建一个底面较长,但高度较矮的矩形,然后将矩形按高度分层,接着将模型转换成可编辑多边形,通过控制模型表面的线段,面、顶点等元素,对模型外观进行雕刻,然后导出到Unity。具体如下图3-20所示图3-20城墙的面城墙与炮台组合。新建一个空物体作为炮台的父对象,把炮台拖动到父物体下,接着把炮台复制多份,然后按敌人移动的轨迹,对炮台进行对称摆放,要注意的就是避开地面岩石、植被。再新建一个空物体作为城墙的父对象,把城墙拖动到父物体下,接着把城墙复制多份,按着炮台与炮台之间放一个城墙模型的规则摆放好。最终场景完成效果如下图3-21所示。图3-21加入了城墙的场景3.2.2游戏建筑设计建筑构建:在3DMAX软件中,新建一个底面积较小,但高度较高的矩形,然后将矩形按高度分层,接着将模型转换成可编辑多边形,通过控制模型表面的线段,面、顶点等元素,对模型外观进行雕刻。具体如下图3-22所示。图3-22建筑物的顶点贴纸制作:此前制作贴图一样,通过UVW展开命令,把模型的UVW贴图导出。然后打开Photoshop,对uvw贴图进行上色,最后导进3DMAX中,完成制作。具体如下图3-23所示。图3-23建筑物的UVW贴图共制作三种不同形状的建筑物。一个是小的镭射信号发射塔,一个是带有能量核心的充电塔,最后一个是模仿珊瑚形状的瞭望塔,三种建筑可两两进行组合。具体如下图3-24所示。图3-24三种建筑物场景地形与场景建筑合成:建筑模型的fbx格式文件导入Unity中,然后新建一个空物体作为建筑的父对象,然后把建筑模型拖动到父对象的下方,然后按“W”快捷键调整位置和“R”快捷键调整大小。具体如下图3-25所示。图3-25最终的场景3.3UI设计3.3.1UI基调因为游戏的模型都是以卡通风格为主的,所以整个画面都是偏向卡通的风格,以此为基准,我们游戏UI的应该也是抽象化的、或者是偏向卡通的。拟物化的风格会更适合一些写实类的、或者说次世代的游戏,本项目不采用。3.3.2UI色彩搭配因为在场景中所呈现的颜色主要势#4295a4,为了不让画面显得太过于花哨,所以UI颜色的选择上,以湖蓝色的互补色#1c4e57为主色调,但如果以纯#1c4e57为UI颜色,又会与#4295a4的颜色很相似,缺乏层次感,因为#1c4e57与#4295a4是辅助色,所以再搭配上#68a677做一个描边处理。具体如下图3-26所示。图3-26UI色彩搭配3.3.3UI风格前文已经提到了,UI风格应该十抽象化的。再回顾我们之前所设计的场景模型、角色模型,不难看出,除了“卡通化”这一个特点外,另外一个鲜明的特点就是POLYGON(低多边形风格)。模型没有太多复杂的细节,一方面是基于制作时间的考量、另一方面则是考虑到了游戏的性能优化(尽可能地去减少模型中的三角面数量),所以最终确定UI以扁平化为主调。具体如下图3-27所示。图3-27UI图标的层次结构3.4关键程序实现3.4.1视角控制视角控制的实现,主要通过以下代码:speed代表镜头移动速度,mouseSpeed代表鼠标缩放速度,xMin、xMax这些代表摄像机镜头在xyz三轴可移动的范围,可以在外部设定。在update函数中,监听键盘输入,通过WASD控制镜头上下左右移动;再利用MouseScrollWheel参数,控制视野的缩放;最后,通过数学函数clamp对xyz三轴的移动进行限制。最终实现了预期的视角的控制。floatmouse=Input.GetAxis("MouseScrollWheel");transform.Translate(newVector3(h*speed,mouse*mouseSpeed,v*speed)*Time.deltaTime,Space.World);transform.position=newVector3(Mathf.Clamp(transform.position.x,xMin,xMax),Mathf.Clamp(transform.position.y,yMin,yMax),Mathf.Clamp(transform.position.z,zMin,zMax));}3.4.2炮塔建造炮塔建造的实现,主要通过以下代码:首先监听鼠标点击的状态,然后判断鼠标是否点击在UI上,如果为否,执行下一步,从摄像机处发个射线到鼠标位置进行检测“MapCube”层的物体(所有炮台模型层级均为“MapCube”),接着判断是否已经选择好了所需要建造的炮塔,并且炮台是否没有已存在的炮塔,如果同样没有已经存在的炮塔,那么调用炮台物体包含的MapCube脚本里面的Build方法,把已经选择的炮塔预制体传到送MapCube脚本中,并相应地更改MapCube脚本里面的标识参数,建造完成。Rayray=Camera.main.ScreenPointToRay(Input.mousePosition);RaycastHithit;boolisCollider=Physics.Raycast(ray,outhit,1000,LayerMask.GetMask("MapCube"));if(isCollider){MapCubemapCube=hit.collider.GetComponent<MapCube>();if(turretSelected==false&&mapCube.Builded==null){SceneManager0sm0=GameObject.FindGameObjectWithTag("Manager").GetComponent<SceneManager0>();StartCoroutine(sm0.EmptyWeaponTag());}if(mapCube.Builded==null&&SelectedTurretData.TurretPrefab!=null){if(Money>SelectedTurretData.TurretMoney){if(IndicationShow==false){MoneyUpdate(-(SelectedTurretData.TurretMoney));StartCoroutine(mapCube.BuildTurret(SelectedTurretData));updateButton.GetComponent<Button>().interactable=false;demolishButton.GetComponent<Button>().interactable=false;}elsereturn;} 3.4.3炮塔攻击炮塔攻击的实现,主要通过以下代码:通过碰撞器检测,检测所有带“Enemy”标签的物体,然后把它们按检测的先后次序,储存进一个队列里面,然后炮塔只要在update方法中实时检测队列里面是否存在敌人,如果有,侧优先对队列中第一个元素发动攻击,先让炮塔朝向敌人,然后调用攻击方法,生成炮弹与特效火焰,并且把队列中第一个元素的实时坐标发送给炮弹,炮弹命中敌人后,调用敌人物体自身的脚本,产生爆炸效果,并且扣除敌人血量,直到队列中第一个元素的生命值为0,那么就掉调用刷新队列方法,把该元素的敌人列队中移除,原本的第二个元素就会排到第一的位置,炮塔重新发起攻击,如此循环。 if(enemys.Count>0&&enemys[0]!=null){Vector3targetPosition=enemys[0].transform.position;targetPosition.y=head.transform.position.y;head.LookAt(targetPosition);}timer+=Time.deltaTime;if(isLaser==false)//子弹的攻击方式{if(enemys.Count>0&&timer>=attackRateTime){timer=0;Attack();}}elseif(enemys.Count>0)//激光攻击方式{if(laser.enabled==false){laser.enabled=true;LaserEff.SetActive(true);}if(enemys[0]==null){UpdateEnemys();}if(enemys.Count>0&&enemys[0]!=null){Vector3tempPosition=newVector3(enemys[0].transform.position.x,enemys[0].transform.position.y+2,enemys[0].transform.position.z);Vector3pos=launchPoint.position;pos.y=enemys[0].transform.position.y;enemys[0].GetComponent<Enemy>().TakeDamage(laserDamage*Time.deltaTime);}}else{laser.enabled=false;LaserEff.SetActive(false);}} voidAttack()} 3.4.4敌人移动敌人移动的实现,主要通过以下代码:因为敌人移动都是直线移动,所以就直接利用一个位置数组和一个转向数组实现了。首先,遮两个文件都是通过外部的json文件进行加载读取,然后判断游戏关卡(不同关卡的路径不一样,所以参数也不一样),初始化状态,挂载脚本的物体向位置数组的第一个元素移动,当检测到物体与位置数组的第一个元素距离小于0.2时,代表物体已经到达当前前进点,那么脚本就会控制物体向位置数组的第二个元素移动,同时读取转向数组,转向数组是一个整型的数组,里面仅有0和1两个参数,当读取到0时,代表物体向左转;当读取到1时,代表物体向右转,如此控制,直到物体到达了路径的终点后,物体自动销毁。Creaturedata=JsonUtility.FromJson<Creature>(jsonString);if(win==true){if(index>positions.Length-1)return;transform.position=Vector3.MoveTowards(transform.position,positions[index].position,speed*Time.deltaTime);if(Vector3.Distance(positions[index].position,transform.position)<0.2f){switch(data.PassChapter){case0:if(index>=1&&index<10){if(rotation[index-1]==0){transform.Rotate(newVector3(0,-90,0));}if(rotation[index-1]==1){transform.Rotate(newVector3(0,90,0));}}break;case1:if(index>=0&&index<10){if(rotation[index]==0){transform.Rotate(newVector3(0,-90,0));}if(rotation[index]==1){transform.Rotate(newVector3(0,90,0));}}break;}index++;} if(index>positions.Length-1){ReachDestination();}}else {ani.speed=0;return;}}voidReachDestination(){GameObject.Destroy(this.gameObject);win=false;ma.GameFailed();es.GetComponent<EnemySpawner>().enabled=false;}3.4.5UI控制(结合MVC)由于UI控制(controller、mdoel、view)涉及的元素繁杂,不大适合用纯代码的方式进行表达,所以这里通过伪代码和思维导图展示设计逻辑。具体如下图3-28所示。图3-28MVC框架下UI交互结构具体实现以敌人收到攻击为例:Controller: Void敌人收到攻击(){获取敌人物体id; 根据id获取Model层的数据;根据id获取View层的UI组件对Model层的数据进行曾删改查;刷新UI,把更新后的数据显示在UI上;} Model: 队列<敌人数据>(); GET方法,允许外部读取; SET方法,允许外部写入;View: Image敌人血条; Text敌人生命值; GET方法,允许外部读取;3.5游戏渲染特效实现3.5.1场景光晕特效光晕贴图制作。再Photoshop中,新建一个正方形,然后为背景填充暗灰色(暗灰色贴图导入游戏引擎后,灰色部分相当于阿尔法值为0),然后新建一个图层,用框选工具拖出一个长条状的矩形,然后点击修改,收缩,让矩形选区两端变得尖锐,接着用快捷键”G”为选区填出白色,然后将该图层复制多层,并调整其拷贝对象的尺寸大小,最后导出为tga格式的贴图文件导入Unity。具体如下图3-29所示。图3-29光晕贴图特效预制体设置。在Unity中新建一个材质,材质的shader选择additive,然后把制作好的贴图赋予该材质。然后再新建一个particlesystem物理系统,把材质赋予该物理系统,然后修改其基础属性:持续时长设置为5,勾选循环,粒子生命时长和初始化速度均设置为5与3范围内随机设定,初始化大小设置为5与30范围内随机设定,喷射属性里面的间隔市场设置为10,形状属性里面形状设置为盒子,大小为三维向量(100,100,5),最终效果如下。具体如下图3-30所示。图3-30光晕材质的参数设置3.5.2场景泡泡特效 泡泡贴图制作:Photoshop中,新建一个正方形,然后为背景填充暗灰色(暗灰色贴图导入游戏引擎后,灰色部分相当于阿尔法值为0),然后新建一个图层,用框选工具拖出一个圆形,然后修改其形状,接着用快捷键”G”为选区填出白色,最后导出为tga格式的贴图文件导入Unity。具体如下图3-31所示。图3-31泡泡贴图特效预制体设置:Unity中新建一个材质,材质的shader选择additive,然后把制作好的贴图赋予该材质。然后再新建一个particlesystem物理系统,把材质赋予该物理系统,然后修改其基础属性:持续时长设置为5,勾选循环,粒子生命时长设置为4与8范围内随机设定,初始化速度设置为3与2范围内随机设定,初始化大小设置为2与0.5范围内随机设定,喷射属性里面的间隔市场设置为10,形状属性里面形状设置为锥形,生成后大小由时间控制逐渐变小,最终效果如下。具体如下图3-32所示。图3-32泡泡特效的参数设置3.5.3摄像机滤镜特效 摄像机滤镜效果再Unity中是一个非常成熟的特效,所以这里我们直接用其他开发者已经制作好的模块,直接使用就好了,这样可以大大节省工作量,流出更多时间来进行项目调试。具体如下图3-33所示。图3-33LUTIFY特效这里选择的是lutify特效模块,下载完成后引擎就是自动将模块导入工程,然后添加lutify的脚本到摄像机的组件上,然后选择材质,勾选强制兼容。具体如下图3-34所示。图3-34LUTIFY特效参数设置最终效果如下。左边为无滤镜效果,右边为有滤镜效果,可以很明显地看出,添加滤镜后画面更为唯美、梦幻,而且场景中各个物体的色彩也更为艳丽了。具体如下图3-35所示。图3-35LUTIFY特效效果对比,左侧为无特效,右侧为有特效3.6CG设计3.6.1CG的目的游戏CG,顾名思义,就是专为游戏所制作的视频动画,它有一个核心要素。一,表现游戏内容。需要玩家在观看CG动画的过程中,动画能正面、或侧面地将其故事背景、玩法等要素透露给玩家;二,吸引玩家眼球,一个画面精美,故事情节丰富的CG动画可以在游戏体验前就捕获玩家的兴趣。所以,一个完成的游戏项目,CG动画显然是不可或缺的。3.6.2CG制作工具Timeline:Timeline是Unity2017版本新添加的功能,可以方便开发者通过图形化的时间轴,管理游戏场景中的元素(包括特效、模型等),通过Timeline可以快速制作CG动画、过程动画、极大提升了效率。Cinemachine:Cinemachine是Unity中的一个模块,它为场景提供了多个虚拟摄像机,其一般与Timeline搭配使用,方便开发者制作各种美术资源。UnityRecorder:UnityRecorder是Unity官方的屏幕录制工具,其作用很明显,就是捕获Game窗口的画面,把其运用到后期的视频剪辑中。AdobePremiere:AdobePremiere是我们很熟悉的一个视频剪辑软件,可以高效地对视频素材进行编辑,是家喻户晓的视频后期软件。3.6.3CG分镜设置 分镜一:在海洋王国城堡的兵营中,画面左边士兵A靠着小山坡在呼呼大睡,画面右边士兵B走线士兵A。分镜二:镜头却换给士兵B,一个特写,士兵B在叹气和摇头,虽然镜头缓慢向士兵A转动。分镜三:号角声想起,镜头却换给士兵B,士兵B向后转身,镜头切换成城墙的远景,炊烟从左往右依次升起,然后镜头转向哨岗。分镜四:镜头切换到哨岗上的士兵,然后一个特写,哨岗士兵拿起望远镜眺望。分镜五:镜头切换到望远镜的视角,看到敌人蜂拥而来,哨岗士兵放下望远镜。分镜六:哨岗士兵转身,一个特写镜头,哨岗士兵拿去扩音器呼喊。3.6.4CG成品展示这一幕展现的是分镜一所表现的画面:在海洋王国城堡的兵营中,画面左边士兵A靠着小山坡在呼呼大睡,画面右边士兵B走线士兵A的画面。具体如下图3-36所示图3-36CG片段1这一幕展现的是分镜三所表现的画面,号角声想起,镜头却换给士兵B,士兵B向后转身,镜头切换成城墙的远景,炊烟从左往右依次升起,然后镜头转向哨岗。具体如下图3-37所示。图3-37CG片段2这一幕展现的是分镜五所表现的画面,镜头从瞭望塔的士兵视角切换到一个望远镜的视角,看到敌人蜂拥而来,哨岗士兵放下望远镜,转身拿起话筒进行广播。具体如下图3-38所示。图3-38CG片段3
第四章游戏成品展示这个是游戏的开始界面,背景是带有闪电特效的动态效果。点击中间开始游戏即可进入下一个界面,右上角分别是音量设置和退出游戏案件。具体如下图4-1所示。图4-1开始游戏界面这个是游戏的加载界面,选择了一个敌人进攻海洋王国的画面,这种宏大的场面,能给初次体验的玩家带来进入游戏前的紧张感,下方则是加载的百分比进度条。具体如下图4-2所示。图4-2游戏加载界面 这是游戏的选关界面。会有一个NPCAI进行操作交互指引,气泡中的则是对话内容,点击下面按键可继续对话,右上角分别是关卡重置按钮和返回上一层按钮。具体如下图4-3所示。图4-3游戏选关界面这个是游戏进行中的画面。左上角是显示当前点选炮塔的信息,右上角显示关卡序号、金币、敌人波次,以及暂停、声音设置、退出游戏按钮,左下角时选择的炮塔,右下角是对炮塔进行的操作。具体如下图4-4所示。图4-4游戏进行中当我们鼠标点击场景中的炮塔时,左上角会切换当前点中的炮塔的信息,右下方可根据属性进行相关操作:升级或者拆除炮塔,操作完成后会有对应特效播放。具体如下图4-5所示。图4-5游戏进行中当游戏胜利时,会有一个从上到下的渐变色过渡,等到过渡完成,会弹出一个代表胜利的徽章图标,玩家通过点击图标,可以返回到关卡选择界面。具体如下图4-6所示。图4-6游戏胜利
第五章总结与展望5.1技术难点回顾5.1.1炮塔建造逻辑炮塔建造的实现主要依靠UnityAPI中一个很重要的功能——射线。通过从某一端发射一条不可见的射线到被检测的物体,然后射线会与物体上的碰撞体组件交互,其中的RayCastHit包含被检测物体的所有信息(物体、脚本等等属性),然后再获取其对象,对对象进行相关操作。还要结合其他限制条件,例如检测鼠标与UI层是否存在遮挡关系、判断炮塔能否建造等因素,综合实现这个逻辑。5.1.2MVC的实际运用设计模式代表了最佳的实践,通常是有经验的面向对象的软件开发人员采用的。简单来说,设计模式就是软件开发人员在软件开发过程中,面临一些问题的解决方案,可以理解为逻辑实现的模板。通过让软件或者程序遵循设计模式进行开发,可以避免许多出错的情况,而且设计出来的系统的逻辑性与条理性能有大大增强,这就是为什么大部分软件的开发都系遵循其逻辑。在本项目中,通过将物体对应的业务逻辑、UI显示、属性数据三者相互剥离的方式实现,业务逻辑对属性数据可读可写,对UI显示只读,大大降低了代码之间的冗余,提升了游戏效率,并且降低了游戏运行时的性能消耗。5.2课题总结到这里,本项目的实践可以说是告一段落了。综合本次实践的各个环节,基本上实践还是比较成功地达到了预期目标,将MVC交互模式顺利运用到塔防游戏之中,并成功降低了代码之间的耦合度,提升了运行速度。此外,通过本次实践,也对自身的能力有了充分的锻炼,以前做游戏很多时候都是只负责逻辑(代码)的编写,而在本次实践中,则需要我运用本科四年来所学的大部分知识,对整个游戏项目进行全局把握。先从游戏的构思开始,制定一系列的数据,然后运用3dsmax,一步一步地开始场景搭建、建筑搭建、角色搭建,再返回到Unity之中,对所有的素材开始进行组合、光照烘焙和美化,再进行逻辑的编写,最后还创新性地运用了新的工具进行动画CG的制作。可以说,经历了本次实践后,对我的实操水平有了很大提高。但与提升相对的,也发现了自己的一些问题,例如在模型制作这块还不够熟练、对某些常用代码还不够牢记等等,这些都需要我在日后不断加强练习。因为热爱,所以向往,我热爱游戏这个行业,希望我能在未来再接再厉,不断提升自己的游戏开发水平。
参考文献□[1]朱春霓.MVC设计模式在ASP.NET平台开发中的应用[J].电脑编程技巧与维护,2019(04):90-92.[2]张趁香.基于MVC的C#课程教学网络游戏软件设计与实现[J].计算机产品与流通,2018(02):172-173.[3]马春江,张明禎.Unity3d游戏开发中的面向组件思想和MVC框架[J].信息与电脑(理论版),2017(18):70-72.[4]张翔,陆远,罗贵明.模型与实例设计模式在工作流管理系统设计中的应用[J].计算机应用研究,2006(07):165-166+169.[5]吕学琴,苏闰,陈彦军.基于Unity引擎制作塔防游戏[J].智能计算机与应用,2018,8(05):95-99.[6]胡杭.基于Unity3D的移动塔防游戏设计与实现[J].现代计算机(专业版),2019(04):60-63.[7]王佳.“互联网+”时代下的游戏UI设计课程教学策略探索[J].湖北开放职业学院学报,2019,32(18):143-144.[8]韩林.浅析手机游戏UI设计中视觉艺术元素的构成[J].美术教育研究,2018(16):72-73.[9]宋传磊,刘俊婷,张光亮,侯世中.Unity3D项目脚本优化分析与研究[J].中国新通信,2017,19(01):79.[10]单盛,李曙光.基于Unity3d的虚拟场景模型构建与优化探析[J].现代商业,2019(08):177-178.[11]韩明阳.视觉设计中色彩元素在游戏UI中的应用研究[D].吉林艺术学院,2016.[12]倪镔.论美术风格对手机游戏产品的意义[J].美术教育研究,2017(12):54-57.[13]江红伟,吴兆明.Unity脚本执行周期算法与时间体系[J].电脑知识与技术,2018,14(32):230-232.
[14]李昌玉.织物三维仿真及在三维场景展示的研究[D].浙江理工大学,2012.
[15]陈克.基于BBS的政府舆情采集分析系统的设计和实现[D].南京邮电大学,2012.
[16]董言乐.换流站仿真演练系统开发[D].华南理工大学,2011.
[17]董蕾.基于WEB的社会保险费网上申报系统的设计与实现[D].厦门大学,2013.
[18]李贺松谢溥庆彭洪田应甫.铝电解槽极距波动在线仿真研究[D].轻金属,2015.
[19]陈旭.木马技术研究及反弹木马系统的设计与实现[D].云南大学,2014.
[20]王可钦.微软软件销售项目商业计划书[D].华南理工大学,2014.
[21]张琪祥.基于leapmotion的手势识别研究及应用[D].北京邮电大学,2018.
[22]张莹赵瑞秀.基于Authorware的古诗学习系统的研究与开发[D].科技创新与应用,2014.
致谢在本文的撰写过程中,魏菊霞老师作为我的指导老师,她学术研究严格,知识渊博,视野开阔,为我营造了良好的学术氛围。在我学习期间,我的耳朵和眼睛变得微妙,不仅让我接受了新的想法,确立了明确的学术目标,掌握了基本的思维方法,掌握了常见的研究方法,而且还了解了很多与人交往和生活的原则。它严谨高尚的自律和对他人宽容的风格,朴实而平易近人的人格魅力以及其细致而感人的人文关怀使人感到温暖和温暖。正是由于她在繁忙的工作计划中多次审查了全文,修改了细节,并为撰写本文提供了许多相关而宝贵的意见,才形成了这篇文章。在此特向魏菊霞老师致以衷心的谢意!对她无可挑剔的敬业精神,严谨的学术态度,深厚的专业修养和平易近人的态度表示敬意!同时,我感谢母校的所有老师对我的培养和教育!特此鸣谢!
电脑无法识别U盘该怎么办HYPERLINK电脑无法识别U盘怎么办?打开我的电脑上单击右键,在快捷菜单里,选择“管理”,打开“计算机管理”窗口。在计算机管理窗口里,选择“存储”下面的“磁盘管理”,如果看得到没有盘符的U盘,那么在这个U盘上按鼠标右键,选择“更改驱动器名称和路径”选项,就打开了“更改……的驱动器号和路径”对话框。再点击“更改”按钮,打开“更改驱动器号和路径”的对话框,在“指定以下驱动器号”的右边下拉列表里,选择你希望分配给U盘的驱动器号,尽可能靠后选择,比如X、Y、Z,选择好后,单击确定按钮,回到上一次“更改……的驱动器号和路径”对话框窗口,再一次单击确定,就回到“计算机管理”窗口。至此,如果一切正常,就给U盘单独设置了一个长久使用的驱动器号,并却,不受虚拟驱动器的影响了。建议将U盘插到电脑上,看任务栏中是否显示图标,如果显示,在我的电脑点右键查看属性——高级——硬件——设备管理器——查看里面是否有问号的设备,在问号设备上点右键——更新驱动程序然后下一步——否暂时不连接到网络——下一步自动安装软件(推荐)就可以了另外:系统不认U盘的几种处理方法1.禁用主板usb设备。管理员在CMOS设置里将USB设备禁用,并且设置BIOS密码,这样U盘插到电脑上以后,电脑也不会识别。这种方法有它的局限性,就是不仅禁用了U盘,同时也禁用了其他的usb设备,比如usb鼠标,usb光驱等。所以这种方法管理员一般不会用,除非这台电脑非常重要,值得他舍弃掉整个usb总线的功能。但是这种屏蔽也可以破解,即便设置了密码。整个BIOS设置都存放在CMOS芯片里,而COMS的记忆作用是靠主板上的一个电容供电的。电容的电来源于主板电池,所以,只要把主板电池卸下来,用一根导线将原来装电池的地方正负极短接,瞬间就能清空整个CMOS设置,包括BIOS的密码。随后只需安回电池,自己重新设置一下CMOS,就可以使用usb设备了。(当然,这需要打开机箱,一般众目睽睽之下不大适用~~)2.修改注册表项,禁用usb移动存储设备。打开注册表文件,依次展开"HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\usbehci”双击右面的“Start”键,把编辑窗口中的“数值数据”改为“4”,把基数选择为“十六进制”就可以了。改好后注销一下就可以看见效果了。为了防止别人用相同的方法来破解,我们可以删除或者改名注册表编辑器程序。提示:“Start”这个键是USB设备的工作开关,默认设置为“3”表示手动,“2”是表示自动,“4”是表示停用。3.在computermanagement里将removablestorage的使用权限禁止。computermanagement是一个windows管理组件,可以在控制面板——管理工具——计算机管理打开。在该工具窗口中storage——removablestorage——property中,general项,可以控制系统托盘是否显示security则可以管理移动存储设备的使用权限。在security中将普通用户的使用权限降低,就可以达到禁用u盘的目的。破解的方法也很简单,管理员降低普通用户移动存储设备的使用权限,但未必禁用computermanagement的使用权限。普通用户可以通过这个工具解除usb移动存储设备的使用权限限制。另外,值得一提的是,如果u盘插到电脑上后可以驱动,但是我的电脑里却没有盘符,很有可能是管理员改动了u盘的默认盘符,使得我的电脑不能识别。这种情况,可以在movablestorage中看到u盘驱动器。可以在u盘驱动器属性设置里为u盘重新分配一个盘符,再重新插拔一次u盘,就可以在我的电脑里看到u盘的盘符了。一、首先可以将该U盘换到别的机器上,看使用是否正常。如果排除了硬件损坏的可能,一般就是软件方面有问题。在WindowsXP+SP1操作系统下,有些USB2.0设备的确常常出现工作不稳定的问题,可以试试安装设备自带的USB2.0驱动程序。另外最好不要使用USB延长线,防止因为供电不足而造成不稳定现象。如果仍无效,可以在主板BIOS设定中,将USB接口强行设置为USB1.1传输速率。二、(适用于WIN98)启动计算机,进入主板BIOS设置,检查BIOS中USB的相关选项是否已经打开:OnChipUSB设定为Enabled;USBController设定为Enabled;PNPOSInstalled设定为Yes;AssignIRQForUSB设成Enabled。要正常使用USB设备首先要开启USB接口,在主板BIOS里可以进行此项工作,一般来说只需在BIOS中进入ChipsetFeatures设置,并将USBKeyborad/MouseLegacy选项设定为Enable,就能够保证在操作系统下使用USB键盘了。这些选项的作用是打开主板芯片组对USB设备的完全支持,为系统识别USB设备做准备工作。三、USB口接触不好处理办法:拔下,等十秒钟再插上USB口,使接触完好;五、闪存盘驱动程序没有安装完成(WIN98系统下)处理办法:鼠标点“我的电脑”,选择属性找到“通用串行总线”,删除其中的USBMASSSTORAGE项,再点击“刷新”,然后按照提示重新安装一次驱动程序。六、接其它USB设备(如扫描仪、打印机、数码相机)时可以正常使用,接优盘时闪指示灯不亮,不能够使用。1、检查优盘与电脑的联接是否正常,并换用其它USB接口测试。2、检查设备管理器,看是否出现”通用总线设备控制器”条目,如果没有,请将电脑主板BIOS中USB接口条目*激活(ENABLE)。3、如果电脑安装过其它类型USB设备,卸载该设备驱动程序,并首先安装优盘驱动程序。4、到其它电脑试用此优盘,确认是否优盘不良。七、启动型优盘在的电脑上无法实现启动,可能是主板型号不支持。如何判断一块主板是否支持闪存盘启动系统启动型优盘是采用模拟USB软驱和USB硬盘的方式启动电脑的。只要电脑主板支持USB设备启动,即BIOS的启动选项中有USB-FDD、USB-HDD或是其它类似的选项,就可以使用启动型优盘启动电脑。八、第一次在电脑上使用优盘,未出现提示发现新硬件的窗口,驱动程序无法安装的原因可能是:1、主板usbcontroller未启用解决办法:在电脑主板BIOS中启用此功能。2、usbcontroller已经启用但运行不正常解决办法:在设备管理器中删除”通用串行控制器”下的相关设备并刷新。3、优盘被电脑识别异常,在设备管理器中表现为带有黄色?或!的”其它设备”或“未知设备”。解决办法:删除此设备并刷新。九、大容量的U盘(例如兼具MP3播放器或录音功能的U盘)或移动硬盘在电脑上无法正常使用,虽然系统提示找到了未知的USB设备,但无法正确识别U盘或移动硬盘。原因可能是:1.USB接口供电不足:系统为每个USB接口分配了500mA的最大输出电流,一般的U盘只需要100mA的工作电流,因此在使用过程中不会出现什么问题。大多数移动硬盘所使用的是普通的2.5英寸硬盘,其工作电流介于500mA~1000mA之间,此时假如仅仅通过USB接口供电,当系统中并无其他USB设备时,那么还是可以勉强使用的,但如果电压不稳的话,就随时可能出现供电不足的问题。特别是使用支持USB2.0的移动硬盘时,情况最为严重。另外,如果你的笔记本电脑使用电池供电,那么USB接口所分配的电量就更小了。2.使用了外接的USB扩展卡:在笔记本电脑中使用USB2.0的U盘或移动硬盘时,如果笔记本电脑不支持USB2.0技术,一般必须通过PCMCIA卡转USB2.0的扩展卡来间接实现支持,这些扩展卡基本上都采用NEC公司的D720100AGMUSB控制芯片,少则提供两个USB2.0接口,多则提供五个USB2.0接口,对一般用户而言足够使用了。由于PCMICA接口提供的电源功率比板载USB接口要小,这样就会由于供电不足而导致移动硬盘工作的出现问题。解决方案:1.它从USB连接线上接移动硬盘的一端引出一根转接线,可以插入电脑背后的PS/2接口取电,这里可以比USB接口提供更大的电流输出。2.利用电源补偿线(也称“键盘取电线”),如果U盘或移动硬盘的包装盒中提供了选配的电源适配器,你就可以直接使用外接电源,这样就可以从根本上避免供电不足的情况发生了前置USB线接错。当主板上的USB线和机箱上的前置USB接口对应相接时把正负接反就会发生这类故障,这也是相当危险的,因为正负接反很可能会使得USB设备烧毁。所以尽量采用机箱后置的USB接口,也少用延长线.也可能是断口有问题,换个USB端口看下.USB接口电压不足。当把<ahref="mobileharddisk">移动硬盘</a>接在前置USB口上时就有可能发生系统无法识别出设备的故障。原因是<ahref="">移动硬盘</a>功率比较大要求电压相对比较严格,前置接口可能无法提供足够的电压,当然劣质的电源也可能会造成这个问题。解决方法是<ahref="">移动硬盘</a>不要接在前置USB接口上,更换劣质低功率的电源或尽量使用外接电源的硬盘盒,假如有条件的话。主板和系统的兼容性问题。呵呵这类故障中最著名的就是NF2主板与USB的兼容性问题。假如你是在NF2的主板上碰到这个问题的话,则可以先安装最新的nForce2专用USB2.0驱动和补丁、最新的主板补丁和操作系统补丁,还是不行的话尝试着刷新一下主板的BIOS一般都能解决。系统或BIOS问题。当你在BIOS或操作系统中禁用了USB时就会发生USB设备无法在系统中识别。解决方法是开启与USB设备相关的选项。就是开机按F2或DEL键,进入BIOS,把enableusbdevice选择enable。拔插要小心,读写时千万不可拔出,不然有可能烧毁芯片。XP中任务栏中多出USB设备的图标,打开该图标就会在列表中显示U盘设备,选择将该设备停用,然后你再拔出设备,这样会比较安全。
其实判断
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初中政治听评课记录
- 2017教师听评课记录
- 石楼县2024年一级造价工程师《土建计量》深度自测卷含解析
- 高中历史说课课件
- DB 1401T 37-2024 城市轨道交通全自动运行线路运营管理规范
- 《个人证券投资》课件
- 蓝色国潮风二十四节气科普介绍-白露模板
- 《电梯安全与自救》课件
- 坚持课件教学课件
- 《文化产业融资工具》课件
- 图文转换-图表(小题训练)(解析版)-2025年部编版中考语文一轮复习
- 七上语文期末考试复习计划表
- 2024儿童青少年抑郁治疗与康复痛点调研报告 -基于患者家长群体的调研
- 江苏省建筑与装饰工程计价定额(2014)电子表格版
- 未打卡情况说明表
- 中国水饺行业发展研究报告
- 我国各类型扣件技术说明
- 毕节市财政局国库科工作运行规程
- 一年级语文课堂中的教学游戏
- 东汽600MW机组润滑油系统说明书
- 承插型盘扣式支架施工技术总结
评论
0/150
提交评论