




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
摘要随着人们生活水平的提高,追求精神生活则成为必然需求,而游戏则是精神生活的一部分,伴随着第三次科技革命的到来,科技的发展进步,使众多游戏开发引擎应运而生,其中,unity3D则是一个较为流行且优秀的游戏开发引擎,有了这款开发引擎,可以满足人们玩游戏的精神生活需求。在众多游戏中,游戏可分为:角色扮演类、射击类、动作类、冒险类、休闲类、音乐类游戏等。角色扮演游戏(Roleplayinggame),简称RPG,是一种玩家扮演某个角色在一个写实或虚构世界中活动的游戏。而RPG变装游戏则是更换玩家控制游戏人物的头发、衣服、裤子、裙子、裤袜、鞋子、手套等。通过个性化的搭配,玩家可以搭配出漂亮且喜欢的服装给游戏人物,丰富玩家的爱美需求。添加游戏战斗模块,增加游戏的刺激性和趣味性。Unity3D作为一款快速开发的引擎,我们将一起探究基于Unity3D的变装游戏的设计与开发,它是区别于2D变装游戏,是一款3DRPG变装游戏,玩家在选择好自己喜欢的服装搭配之后进入游戏,在游戏中,玩家共有3个技能,不同的技能攻击伤害是不一样的,玩家可利用技能攻击,杀死敌人,游戏攻击属性多元,绚丽的粒子特效给玩家带来刺激的体验。由于现在人们忙碌和疲惫的生活下,一款卡通人物形象的动漫风设定手法,更加受青少年喜爱,游戏屏弃杀戮、血腥、外表暴露的游戏特性,采用清新、唯美、可爱的游戏人物风格,更加适合青少年消遣。文章主要描述游戏人物的变装原理及玩法,还有游戏设计与实现以及游戏的测试。关键词:Unity3D3D技术变装类游戏游戏技能
AbstractWiththeimprovementofpeople'slivingstandards,thepursuitofspirituallifehasbecomeaninevitabledemand,andgamesarepartofspirituallife.Withtheadventofthethirdtechnologicalrevolution,thedevelopmentofscienceandtechnologyhasmademanygamedevelopmentenginescomeintobeing.Unity3Disamorepopularandexcellentgamedevelopmentengine.Withthisdevelopmentengine,itcanmeetthespirituallifeneedsofpeopleplayinggames.Inmanygames,gamescanbedividedinto:role-playing,shooting,action,adventure,leisure,musicgames,etc.Role-PlayingGame,orRPGforshort,isagameinwhichaplayerplaysaroleinarealisticorfictionalworld.TheRPGdraggamereplacesthecharacters,clothes,pants,skirts,pantyhose,shoes,andglovesofthecharacterstheplayercontrols.Throughpersonalizedmatching,playerscanmatchbeautifulandfavoritecostumestothegamecharacters,enrichingtheplayer'sbeautyneeds.Addagamecombatmoduletoincreasetheexcitementandfunofthegame.Unity3Dasafastdevelopmentengine,wewillexplorethedesignanddevelopmentofthecross-dressinggamebasedonUnity3D.Itisdifferentfromthe2Dcross-dressinggame.Itisa3DRPGcross-dressinggame.Playersarechoosingtheirfavoriteclothing.Afterthematch,enterthegame.Inthegame,theplayerhasatotalof3skills.Differentskillsattackdamageisdifferent.Playerscanuseskillstoattack,killtheenemy,thegamehasmultipleattackattributes,andthegorgeousparticlespecialeffectsbringstimulationtotheplayer.Experience.Duetothebusyandexhaustedlifeofpeoplenowadays,ananimestylesettingmethodforcartooncharactersismorepopularwithteenagers.Thegamescreendiscardsthegamecharacteristicsofkilling,bloody,andexposedappearance,andadoptsafresh,beautiful,andlovelygamecharacterstyle.Moresuitableforyoungpeople'spastime.Thearticlemainlydescribesthegamecharacters'cross-dressingprinciplesandgameplay,aswellasgamedesignandimplementationandgametesting.KeyWords:Unity3D3DTechnologyCrossovergamesPlayerskills
目录第一章 引言 引言1.1选题目的及意义随着科学技术的不断进步和发展,人们生活水平的提高使个人电脑和网络得到了有效普及,各式各样的游戏也相续迸发。游戏能给人们带来什么样的生活意义?首先,游戏给人们带来的是压力的释放,现代人的快节奏生活,忙碌的生活易于产生焦虑和压力,而游戏应用的诞生给业余生活增加了生活的乐趣。其次,RPG变装游戏是目前比较流行的游戏类型之一,一般大型游戏中都会有变装系统,这也是很多游戏获得收益的来源。使用Unity3d开发,可以让玩家对游戏人物、建筑等进行三维观看,有很好的视觉效果。RPG变装游戏可以改变玩家使用的人物形象,给游戏人物头部,身体和四肢的这些部位佩戴不同的配饰,如发型、头饰、武器、衣服、翅膀等,通过改变人物形象来提高游戏的可玩性和趣味性。通过改变人物形象,提高游戏的可玩性和趣味性。其次也可通过改变相应的配饰,折射出了玩家内心世界,也就是说玩家有一部分心理或行为是想要改变的,通过游戏可以缓解一部分想要改变又暂时不想或不能改变的焦虑。1.2RPG变装游戏发展历程RPG是一个有着悠久历史的游戏类型,它可以追溯到公元前,因为当玩家扮演某个角色来执行某个动作时,此时游戏就可以定义为RPG游戏。20世纪70年代,随着人类社会的进步和发展,在电子游戏中存在着黑白图形的游戏界面,非常简单,但在那时候,RPG的基础框架就有了雏形,在九十年代的时候,游戏引擎的诞生,为RPG游戏的发展注入的新鲜的血液,在那之后,RPG的游戏种类出现各式各样,ARPG也是在RPG的基础之上的诞生的。RPG可以与冒险、射击等类型的游戏相结合,形成一种新的游戏模式。显然,变装游戏和RPG的结合也因此产生,例如1998年《塞尔达传说:时之笛》就运用了RPG与变装相结合,该游戏受到众多玩家的喜爱。直到现在,RPG变装游戏也一直受诸多玩家喜欢。1.3Unity3dRPG变装游戏研究现状Unity3D是近年非常受欢迎的游戏开发引擎,目前科学技术高速发展,很多高科技人才选择了做Unity游戏开发行业。目前Unity3d开发人员供不应求,Unity3d游戏开发成本低,市场前景十分广阔,是游戏业界关注的一个领域。由于Unity3d人才的缺乏和社会需求量大导致了这方面人才的价值上涨,所以前景和工资也是相当乐观的,这使得Unity3d发展的越来越好。运用Unity3d开发变装游戏,人物变装系统通常模拟一个三维的虚拟变装空间,给玩家一个三维变装环境,有独立的场景、服装、饰品、道具等模拟设计,让用户在系统中个性化装扮自己,是实现网络游戏人物多样化的主要环节。在人物变装系统中可以看见,游戏服装的发展紧跟现实服装潮流,例如《绝地求生》游戏中的服装,游戏玩家喜欢这类服装,促使部分玩家购买现实版游戏服装。可见,游戏变装系统对游戏玩家是间接影响的,它有一定的商业价值。1.4课题研究内容本文主要介绍一款变装游戏的设计及实现第一章:引言阐述笨课题研究目的、意义以及研究发展现状,本文的研究重点及主要内容。第二章:Unity3D变装游戏系统相关技术与概念阐述Unity3D引擎、使用软件、架构设计第三章:游戏策划及可行性分析概述游戏系统以及游戏开发的可行性分析第四章:变装系统的设计与实现阐述变装系统的前期设计、变装系统的实现第五章:动画系统的概念及实现介绍动画系统以及动画系统的实现第六章:战斗系统的实现第三人称视角移动和旋转、鼠标点击特效及技能特效的实现、AI敌人的实现、碰撞检测、血量制作与实现、技能伤害表、玩家敌人受伤减血、玩家补血、TAB键弹出换装界面、敌人玩家死亡第七章:游戏测试测试环境、测试用例及结果Unity3D变装游戏系统相关技术与概念2.1Unity3D游戏引擎2.1.1Unity3D简介Unity3D是什么?喜欢制作独立游戏的人可能已经听说过Unity,这是由UnityTechnologies开发的,开发者可以很容易地创建一个多平台的游戏,其中包含3D视频游戏、建筑可视化、实时3D动画等多种交互内容,在小型开发项目中开发人员最喜爱的就是它了,虽然存在许多其他3D引擎,但是Unity3D是最简单、易上手的引擎,它是一个具有跨平台的3D游戏开发引擎,为新手提供最友好的用户体验,支持Android、ios、windows、WebGL开发,而且还支持制作VR游戏。对于专业游戏开发人员来说它是足够使用。例如武士系列、城堡勇士、蒸汽之城、绝代双骄、炉石传说、神庙逃亡等都是在Unity3D上开发的。2.1.2Unity3D模块介绍Unity3D基础操作模块:(a)导航菜单:新建场景、导入导出素材、保存场景和打包游戏等。(b)工具栏:主要操作场景中对象。(c)Hierarchy视图:场景中的所有物体对象都在这里,显示物体之间的层级关系。(d)Project视图:本地的资源就存在这里,可以增加、删除资源。(e)Inspector视图:查看和修改物体属性。(f)Scene视图:展示工程项目中的物体。(g)Game视图:显示运行时的游戏制作效果。物理引擎:Unity游戏物体引擎,不需要自己写代码来模拟虚拟世界中的物理效果,只需要通过几行已经写成集合的代码,基于C#脚本开发:开发游戏的核心就是脚本,脚本的作用主要时控制游戏中的物体、动画、摄像机、界面等。GUI界面:每个游戏都有自己独特的界面设计,例如:玩家引导、主界面等,UI界面可以处理用户交互。2.1.3Unity3D脚本开发基础知识Tag标签的作用是标识,在同一类物体中,可以设置成统一标签,通过Tag标签查找,可以查找到N个物体。Unity中对象SetActive()方法,需要初始化false,然后再利用GameOblect.Find(“对象名”)方法是找不到隐藏对象的,需要先找到父物体,然后再根据父物体利用transform方法就可以查找游戏的隐藏对象。Unity3D脚本中常用方法:Awake方法:脚本实例时被调用OnEnable方法:对象被激活状态时被调用Start方法:该方法实在加载游戏场景的时候被调用Update方法:该方法会在执行每帧之前被调用FixedUpdate方法:该方法是执行物理行为的时候被调用OnGUI方法:处理OnGUI事件OnGestroy方法:对象销毁时调用2.23DsMAX软件3dsMax是一款功能强大的3D建模设计软件,渲染逼真的3D模型和动画,主要基于多边形建模,和其他动画程序相比,多边形建模在游戏制作中使用更广,因为游戏制作对模型的面数是有高度特定控制的。它具有非常人性化的界面,还可以用于管理动画中的专业项目。最出色的功能之一就是添加插件功能,从而极大的提高了工作效率。2.3Photoshop软件Photoshop是在1987年诞生的,由Thomas和JohnKnoll两人发开,是一款平面图像处理软件。可以编辑图片的颜色和形状,添加文本以及做出各种各样的图像效果,它是为专业设计师制作的,它需要很高的性能,PS能进行图像校正和调整,裁剪图片,添加图层等功能。主要用于网页设计、图像处理、三维动画、广告设计、彩色印刷以及影像特效制作等众多领域,已成为国际平面设计的标准技术。2.4VisualStudiocode软件Visualstudiocode是一款轻量级源代码编辑器,但是如果搭配插件使用的话,可以和VisualStudio的功能一样强,可在Windows、Linux、MacOS上运行,支持Unity的调试功能,而且支持智能提示,开发人员在开发过程中出现了代码错误的时候,它能定位到具体位置,还有各种方便的快捷键,软件开源并且免费使用。游戏策划及可行性分析3.1游戏系统概述该项目是基于Unity3D引擎开发的变装游戏,游戏模式可分为两种,一种是单机模式,一种是联网模式,本次开发的是单机模式,游戏的玩法是玩家在进入游戏前选择发型、衣服、裙子、手套、裤袜、鞋子、眼睛等,然后搭配好个人喜欢的服饰,确定进入游戏。游戏功能有玩家可通过左键点击地面,人物移动到指定位置并有粒子效果显示点击位置,鼠标右键控制视角,玩家技能系统、敌人AI系统、战斗系统、回血站点、按Tab键显示换装系统、游戏结束等实现组成。3.2可行性分析3.2.1技术可行性Unity3d引擎具有UGUI界面、物理系统、事件系统、粒子系统、还有AI系统,而本次游戏开发的变装功能的实现,使用UGUI中的Toggle和OnChangeValue实现的。游戏在碰撞和攻击的时候,需要用到碰撞器,物理系统提供碰撞检测函数。在玩家发动技能的时候,发射的粒子,可以通过粒子系统制作。敌人的运动和巡逻有动画状态机和AI系统可以实现,血条的增减可以通过UGUI完成。现今所需的所有功能Unity3D引擎足够支持。所以本次开发制作技术方面可行。3.2.2经济可行性Unity3D引擎支持跨平台开发,支持Windows系列、Linux系列等操作系统的开发,制作好的游戏直接就可以导出exe文件在本地生成,玩家只需要复制一份到本地电脑就可以运行体验,所以不存在网络成本。如果需要在苹果或者安卓系统中体验,Unity3D引擎的优势突出,开发人员不用开发多个版本,就可以实现多平台开发,开发成本降低,并且效率高,因此经济上可行。3.2.3社会可行性在金钱社会的影响之下,在如今的部分游戏有以下特征:血腥、杀戮、外表暴露,例如:《毁灭战士3》、《美人三国》、《女王之刃》等游戏,这些游戏对于青少年的身心健康发展具有相当大的影响,而这款变装游戏都不具备这些特性,这款游戏采用卡通人物形象动漫风设定手法,游戏人物风格清新、唯美、可爱,更加适合青少年娱乐。因此游戏开发在社会上可行。3.3游戏架构设计下图3-3-1所示为游戏架构设计图:图3-3-1游戏架构变装系统的设计与实现4.1变装系统的前期设计4.1.13DSMAX制作人物及服饰在3DSMAX中新建一个长方体,将其转化为可编辑多边形,然后在“修改”点击多边形,通过编辑多边形,如插入顶点,挤出、倒角插入、收缩、扩张等属性,完成对人物身体的建模,然后再使用镜像工具,完成对身体另一半的建模。然后再给人物增加贴图,制作完成的人物模型如下图4-1-1所示。图4-1-1人物模型同理,头、头发、衣服、裤袜、鞋子也是采用同样的方式进行建模,最后把模型全部集中在一起。制作完成的服装模型如下图4-1-2所示。图4-1-2人物服装4.1.2骨骼动画的原理在新建好人物及服装之后,模型是不能直接动起来的,需要给模型绑定骨骼,事实上,可以不需要给人物增加骨骼,人物也一样可以运动,可以在关键帧里修改模型的顶点位置信息,这样人物就会跟着一起运动,但是,这种方式有一个缺点,就是效率低,如果需要制作一个复杂的动画,那么这种方式将会被淘汰掉。因此,就产生了骨骼+蒙皮的制作方式,它是通过将皮肤上的点转变成空间上的点,然后通过平移、旋转缩放把骨骼移动到新位置,再根据骨骼的新位置计算皮肤上的顶点的位置。如果一个顶点被多根骨骼影响,就需要使用顶点混合计算新的坐标点,而蒙皮就是为了把皮肤新的坐标点跟对应骨骼关联。至于怎么关联?每个顶点在骨骼上都有一个标号,然后在皮肤上受哪几根骨骼的影响还有受权重的影响有多大决定的。4.2变装系统的实现原理Unity3D变装系统,有各式各样,但是这个变装系统采用的是Unity3d动态变装,这里需要一些服饰和变装的思路。这里的变装不是单纯的换衣服裤子的颜色,而是更换衣服和裤子的款式。谈到变装,很多游戏都有换装系统,包括一些很火的手游,例如王者荣耀、阴阳师、永远的七日之都、模拟人生,游戏的种类不一样,换装的原理也也是会有所不同。2D变装与3D变装有着很大差别,2D的换装需要大量图片来实现,而3D变装则不用,3D的换装需要用骨骼动画来实现。先把资源导入Unity,把人物模型拖到渲染器上,模型是一个白模,需要把贴图拖到人物身上,游戏人物组件只有一个Transform,骨骼多大表示是通过位置信息来表示的,找到对应部分的模拟,把对应的材质加到里面去。骨骼一直在动,它的位置信息也在不断发生改变,之所以会动着动着就停下来了,是因为没有勾选loop。SkinnnedMeshRenderer是蒙皮网格渲染器,主要用来渲染人物的,里面包含三大部分,包含网格、骨骼、还有材质。勾选上,隐藏,就是换装的原理。动态的话,要换骨骼,如果是静态的话,换掉Mesh就可以了。4.3变装系统的实现步骤换装的场景搭建,首先需要在场景中带有girl所有部位的模型,命名为lookhand-1,子物体中有15种头发,11件上衣,7副手套,11套短裙,8双裤袜,8双鞋子,9套长裙,1双眼睛,把这些模型的skinnedmeshreaderer存储到模型里面。然后还要一个空的骨骼,命名为lookhand-1Target,还是girl的模型,但是需要把skinnedmeshreaderer全部删除掉,只留骨骼。一些服饰是通过代码生成的。新建一个文件夹命名为Resources,把lookhand-1和lookhand-1Target做成预制体放入Resources中,通过寻找Resources中的物体,生成到游戏场景中。把换装的房间模型导入游戏场景中,调整房间好与lookhand-1的位置。换装骨骼的加载:将lookhand-1中的所有skinnedmeshreaderer的信息存储到字典里。存储的方式是通过部位的名字加编号,所以模型部位在命名之前就需要命名好。新建一个字典,使用一个字典是存储不了的,字典通过键值对来查找信息,键是唯一的,值是不唯一,这里使用的嵌套字典来存储位置信息。另外有一套transform类型的骨骼信息,用来做骨骼绑定。初始化游戏信息,生成资源游戏物体,生成出来之后隐藏。骨架的加载也是同样的方式。如下图4-3-1所示:图4-3-1骨骼加载换装信息数据的存储:遍历所有子物体,然后把子物体的名字进行拆分,进行存储,然后生成对应的部位信息,且只生成一次。如下图4-3-2所示:图4-3-2换装信息存储换装逻辑的实现:换装的实现就是换材质球、换Mesh、换骨骼,ChangeMesh中有两个参数,通过girlData可以传入一个部位的名字,以及这个部位所对应的编号,然后取出skinnedmeshrenderer去替换当前lookhand-1Target的skinnedmeshrenderer。代码如下图4-3-3所示:图4-3-3更换服装人物加载到动态加载到场景中,初始化骨架让她有mesh、材质骨骼信息,建一个二维数组,二维数组中有part,num,默认穿第一套衣服。代码如下图4-3-4所示:图4-3-4动态加载代码游戏面板单选框的制作:右键新建一个Canvas,在Canvas之下新建添加一个Image,将Image改名为BG,在Image(Script)组件中添加背景图,然后将ImageType改成sliced。在添加一个Image,名字改为bg,同理BG的步骤,然后再bg下添加hair、coat、gloves、pants、stockings、shoes、outfit、eye、hairPanle。在hair中再新建一个Image。如下图4-4-5所示:图4-3-5变装Image面板点击菜单栏中的不同服饰,显示不同信息:在hair中添加Toggle组件,然后添加图片以及在OnValueChanged选择函数,其他服饰也同理可得,如下图4-3-6所示:图4-3-6hair面板更换面板UI图标:使用UGUI来制作,添加背景图片,让背景图片自适应,增添选项栏,可以选择头发、上衣短裙、鞋子、裤袜、长裙、眼睛。都添加ToggleGroup组件,在头发中新建Image将名改成hair-1,添加图片,需要15种发型,新建15个Image,在hair-1中新建两个Image,名字分别为bored和ok,添加相应的图片。如下图4-3-7及4-3-8所示:图4-3-7hair图片面板图4-3-8切换图标代码保存换装信息到新的场景:代码如下图4-3-9和4-3-10所示:图4-3-9保存信息图4-3-10加载到game场景添加换装动画,最后,人物在换装的时候,上衣和一整套裙子不能同时使用,需要判断是上衣还是裙子,两者不能同时有,只能存在一个,最终实现换装效果如下图4-3-11所示:图4-3-11换装裙子4.4UI制作4.4.1主菜单界面图4-4-1开始界面4.4.2变装界面图4-4-2变装界面4.4.3游戏结束界面图4-4-3游戏结束界面动画系统的概念及实现5.1动画系统介绍5.1.1旧版动画系统与新版的区别在旧版动画系统中,模型使用了Legacy,只能使用Animation播放动画Generic适合人形或者其他怪物,而Humanoid用于人形骨骼,新版动画系统可以进行动画重定向,重定向就是第一个人物模型使用了Humanoid,其他人物模型也可以使用这个动画,在旧版动画系统中是不可以使用的。新版选择Generic或Legacy在Rig下面有选项optimizeGameObject勾选,模型会自动添加SkinedMeshRender组件,作用是把一些不需要显示的骨骼隐藏。5.1.2模型动画导入将带有动画的3D模型导入到Unity中,将人物的全部模型动画在Rig中都设置为Generic,将敌人的设置成Humanoid,然后点击Apply,点击Animation面板,勾选LoopTime就是循环播放,不勾选就只播放一次动画。还有一点需要注意的是将Animator组件中的ApplyRootMotion取消勾选即可。5.2动画系统的实现在人物模型(lookhang-1Target)添加Animator组件,新建一个状态机命名为Idle,然后把需要的动画拖到状态机,并且设置状态机的切换条件,然后连接动画片段。如下图5-2-2所示:图5-2-1人物动画状态机控制动画状态的条件有四种设置方式,Float、Int、Bool、Trigger,第一种设置Float控制动画状态的参数,按下WSAD键人物行走可以通过添加混合树实现,但本次人物行走未采用这种方式。第二种使用Int,也是用于速度方向等可用于数值量化的,第三种是Bool,条件为真的时候执行某个动画,为假的时候执行另一个动画。Trigger和bool类型相似,它默认为false。在点击连接线的时候,属性面板就会显示相关内容,其中HasExitTime这个的作用是如果动画过度有条件的时候,勾选它,当满足条件,动画会先播放完上一个动画,再播放下一个,如果没有勾选,满足条件,不管当前动画是否播放完毕,它会直接跳到下一个动画。人物在跑步的时候,添加bool条件,HasExitTime不勾选,人物在发射Q、E、R技能的时候,需要执行播放完技能动作之后,在执行其他动画。人物移动到鼠标点击位置实现原理:之所以人物会移动到鼠标指定位置,是因为在鼠标按下左键的时候,摄像机发射一条射线,射线碰到collider就停止,然后把碰撞的信息保存到RayCastHit结构体中,然后在结构体中获取到碰撞位置信息以及物体属性。人物移动的实现:人物移动,获取到鼠标点击位置之后,人物并没有朝向点击位置,人物有可能侧移背移到鼠标点击位置,而需要的是正向移动到指定位置,实现代码如下图5-2-2和5-2-3所示:图5-2-2面向鼠标点击位置图5-2-3人物动画战斗系统的实现6.1第三人称视角移动和旋转6.1.1摄像机跟随人物移动实现摄像机跟随移动的方法其实有很多,直接把摄像机放入移动物体里面,这样摄像机就可以跟随人物移动,使用的是鼠标点击地面移动到指定位置,如果使用这种方式,摄像机会立刻旋转视角,效果极其不好。因此,使用脚本来控制摄像机的移动,先预置好摄像机与物体的距离,在脚本中知道物体的位置和摄像机的位置,再用插值的方式可以实现让摄像机平滑移动,且紧跟物体。代码如下图6-1-1所示:图6-1-1摄像机跟随6.1.2缩放物体与摄像机的距离定义浮点型位置偏移的向量长度,使用鼠标滚轮滚动获取变化长度,给偏移长度设置限制,最近不能小于4,最远不能大于18,最后计算出偏移位置。代码如下图6-1-2所示:图6-1-2摄像机前移后移6.1.3旋转第三人称视角视角的旋转左右旋转和上下旋转,这里的旋转,需要理清楚的是摄像机绕着人物旋转,还是人物绕着摄像机旋转。这里是摄像机绕着人物旋转,获取人物位置、摄像机朝向以及旋转轴。同理,上下旋转也是这样,但是,在场景中,并不需要360°旋转,只需要旋转一定的角度就可以,旋转10°到90°度视角就可以。旋转概念图6-1-3及代码如下图6-1-4所示:图6-1-3旋转概念图图6-1-4摄像机旋转代码6.2鼠标点击特效及技能特效的实现6.2.1鼠标点击播放特效前面实现了鼠标点击地面移动,而现在只需要在鼠标点击左键的时候,实例化一个粒子特效,在粒子实例化出来之后,为了减少内存及性能的消耗,需要在一定时间之后销毁它。代码如下图6-2-1所示:图6-2-1点击特效代码技能粒子特效的实现Q技能特效制作:粒子特效的制作主要有三部分组成,分别为粒子发射器、粒子渲染器、粒子动画器,在发射粒子前,要知道制作粒子要怎样的效果,例如Q技能的制作,要让粒子如球形状以一定的速度往一个方向发射,到一定时间消失。在发射器中需要设置粒子发射的周期,并且不要循环发射,是要实现按下按键发射一次。接着要给粒子发射的速度,粒子的大小,粒子发射形状,粒子发射的角度以及粒子什么时候消失。在设置模式的时候,要将粒子系统跟随初始位置,粒子动画器的使用要配合渲染器组件中的材质球。因为序列帧的图片是从渲染器组件中获取的。在渲染器中将模式改为可根据相机、速度、长度来调节粒子的缩放,还要添加渲染粒子的材质球。如下图6-2-2-1和6-2-2-2所示:图6-2-2-1粒子属性面板图6-2-2Q技能制作效果同理,E、R技能粒子特效也同通过设置粒子系统中的相关参数和添加相应的贴图得到。释放Q技能的实现:首先将粒子特效设置成预制体,找到QAttack攻击动画,在Animation的Events事件中,当播放到某帧动画的时候,播放粒子特效,在某个时间点添加一个关键帧,Function命名为OnAttack。新建一个空物体Qfire挂载脚本,再新建一个物体QFSK作为Qfire子物体,调整QFSK作为发射口,需要调整相应的位置。按下Q键播放动画,动画执行到特定时间的时候,触发QOnAttack函数。代码如下图6-2-3和6-2-4所示:图6-2-3添加关键帧函数图6-2-4生成Q技能特效同理,E、R技能的实现方式也相同,实现效果如下图6-2-5和6-2-6所示。图6-2-5E技能实现效果图6-2-6R技能实现效果人在跑的过程中释放技能,它不会立刻停下来,而是播放技能动画,但是身体也会移动到指定位置才停下来,有一种使人物停下来的办法就是设置NavMeshAgent组件的速度0;人物虽然停下来了,但是想让它继续移动就不行了。这里还有第二种方式解决,使NavMeshAgent组件设置enabled为false;6.3AI敌人的实现6.3.1场景烘培首先添加一个Tag为road,把道路及地面设为road,点击Static,只勾选NavgationStatic,需要注意的是一定不要全部勾选,因为如果全部勾选烘培场景的时候需要很长时间。然后点击Windows->Navigation,Navigation有四个部分,分别为Agents、Areas、Bake、Object,在Agents中Radius为0.5,Height为2,StepHight为0.2,MaxSlope为20,在Object中勾选NavgationStatic在Bake中,在Bake中将MaxSlope设置为26,点击Bake。得到如下图6-3-1所示:图6-3-1场景烘培6.3.2敌人自动巡逻新建一个动画控制器,将敌人全部动画拖进控制器中,添加动画执行条件,运行游戏检测敌人是否能正常播放动画,如果不能,在project点击敌人在属性面板Rig项中将选择Humanoid,点击Configure,属性面板中找到Pose选择EnforceT-pose,点击Apply在点击Done。完成动画如下图6-3-2所示:图6-3-2敌人状态机在敌人(BOSS1)中添加NavMeshAgent组件,将Hight改为2.5,stoppingdistance改为2,新建脚本为BOSS1AI,AI敌人巡逻思路,判断玩家是否进入敌人范围,如果发现玩家敌人追上进行攻击,否则敌人按巡逻点继续巡逻,巡逻到某个巡逻点的时候,等待两秒,然后继续到下一个巡逻点,并且如果敌人在追击玩家的时候,距离大于10则返回到巡逻范围内继续巡逻。同理,其他小怪和老鼠也是这样实现。6.4碰撞检测要实现碰撞检测,首先要给敌人添加SphereCollider组件,勾选IsTrigger,而玩家添加CapsuleCollider碰撞器,也同样勾选IsTrigger,这样运行游戏,两个物体并不能发生碰撞,因为它还没有满足碰撞的条件,碰撞的条件就两个物体都必须要有碰撞器,其中一个物体必须包含有刚体。当然,这两个物体都有刚体也是可以的,但最少要有一个。满足这些条件才能发生碰撞。6.5血量制作及实现人物所制作的血条采用UGUI来制作,给人物添加一个Canvas组件作为子物体,然后选择Canvas右键-UI-slider,给slider改名为playerslider,然后调整playerslider的scale大小和位置以适应人物对象。设置Minvalue为0,MaxValue为10,Value为10,BackGround是playerslider背景颜色,FillArea是血条的覆盖色,修改血条的背景色和覆盖色。同理敌人的血条也是这样制作的。6.6技能伤害表老鼠(血量2)小怪1(血量4)BOSS1(血量10)小怪2(血量5)BOSS2(血量15)Q技能-2-2-2-2-2E技能-3-3-3-3-3R技能-4-4-4-4-4玩家(血量10)-1-1.5-3-2-46.7玩家敌人受伤减血玩家减血,要让敌人碰撞到玩家,至于如何碰撞还有血量条的制作,文章前面已经说过,下面讲碰撞之后减血操作,代码如下图6-7-1所示:图6-7-1玩家减血敌人受伤减血是受到Q、E、R技能攻击,分别在人物技能脚本中加入碰撞检测函数,在函数里面加入代码如下图6-7-2所示:图6-7-2敌人减血6.8玩家补血在玩家受伤之后,游戏提供补充血量的功能,让玩家能继续玩游戏,想要补充血量,唯一的办法就是去医院位置,但是要补充血量也并非易事,医院门口有一只老鼠在镇守,当玩家剩下的血量不多时,玩家需要走到医院门口位置站一会,血量就会逐渐增加,直到血量加满为止。老鼠的攻击可能就会造成致命的伤害,导致玩家死亡,那么,就是需要玩家杀死老鼠之后来恢复血量。在医院的门口新建一个空物体,命名为HospitalBlood,在物体中添加BoxCollider碰撞器和刚体,给在SpinWithMouse脚本中添加如下图6-8-1代码:图6-8-1增加血量6.9按Tab键弹出换装界面将做好的Canvas变装界面复制一份,然后把两个按钮删除,调整相应的位置,在Canvas的BG中添加Animation组件,使用Animation制作UI动画,让窗口慢慢弹出来,点击windows->animation,显示Animation属性面板,点击CreateNewClip,保存命名为ShowUIAnimation,设置关键帧,开始第一帧设置关键帧,将UI界面拖动到显示的位置,这样就制作好UI弹出的动画,UI隐藏动画HideUIAnimation也是同理可得。将两个动画拖入到Animation组件中。然后新建脚本,命名为TweenPosition。如下图6-9-1和6-9-2和6-9-3所示。图6-9-1弹窗动画图6-9-2防止点击穿透UI图6-9-3按TAB键显示隐藏6.10敌人玩家死亡当敌人被Q、E、R技能攻击之后血量为零时,敌人就播放死亡动画,任何一种攻击,敌人都会播放死亡动画,这里,我使用E技能的攻击老鼠来举例子,代码如下图6-10-1所示:图6-10-1敌人血量为零当老鼠血量为零,就需要找到控制老鼠的脚本,找到脚本写如下代码,如下图6-10-2所示:图6-10-2敌人死亡当玩家血量为零时,玩家人物播放死亡动画,弹出游戏结束画面,代码如下图6-10-3和6-10-4所示:图6-10-3玩家血量为零图6-10-4玩家死亡游戏测试7.1测试环境表7-1测试环境配置CPU:Intel(R)Corei5-6300HQGPU:NVIDIAGeForceGTX950MRAM:8GROM:WD10JUCTOS:Windows1064bit7.2测试用例及结果表7-2测试用例及结果序号测试功能操作预期效果结果1.人物换装点击服装人物更换服装与预期一致2.人物移动鼠标点击地面人物移动点击位置与预期一致3.人物技能动画键盘输入Q、E、R动画成功播放与预期一致4.人物技能特效键盘输入Q、E、R特效显示并播放与预期一致5.鼠标点击地面特效鼠标左键点击显示粒子特效实与预期一致6.人物视角旋转按住鼠标左键上下左右旋转与预期一致7.摄像机远近滚动滚轮摄像机前后移动与预期一致8.换装界面显示/隐藏按下TAB键换装界面显示/隐藏与预期一致9.敌人巡逻和攻击开启场景成功随机生成和移动与预期一致10.敌人减血人物攻击敌人敌人减血与预期一致11.人物减血敌人攻击人物人物减血与预期一致12.敌人/人物死亡敌人/人物为零播放死亡动画并销毁敌人/人物与预期一致结论在本次毕业设计中,我学习到了Unity3DPRG变装游戏的制作以及在国内的发展状况,在本次PRG变装游戏中,从整体上来说,基本功能都以实现,人物及骨骼的动态加载、变装信息的数据存储、游戏单选框的制作、点击菜单显示不同的信息、添加人物穿上衣服后的动画、保存变装信息到另一个场景,上述就是变装系统实现的整个过程。选好服装进入游戏,点击地面,实现人物的移动以及人物视角的上下左右旋转,滚动滚轮实现摄像机拉近拉远。另外还有人物技能的实现需要分别按下Q、E、R键实现技能的释放。AI敌人的巡逻及攻击,敌人中有老鼠攻击,小怪攻击以及BOSS攻击,如果杀死所有的敌人则游戏胜利,否则如果被敌人杀死,则游戏失败,玩家的技能攻击分别有不同的伤害。玩家可以在完的过程中需要切换服装可以按Tab键重新进行更换。本次游戏的开发主要是为了让玩家搭配自己喜欢的服饰,这种服饰的搭配对于购买服饰也会产生一定的影响,从而产生一定的商业价值。开发过程中难免遇到各种问题,对于不能实现的功能,需要及时转变实现方式,提高开发效率,而此次开发中,我也在不断寻求解决问题的办法,转变思路,对于代码中有不懂的需要学会查找API,在遇到报错的时候,需要看报了什么错误,调试的时候,调试的时候,需要打断点来查找执行顺序及错误位置。通过这次开发,我学习到了很多知识,也进步了许多,但仍然有遗憾,在变装系统中,变装的动画太少,需要添加更多的变装动画,还有游戏的难易度以及游戏的趣味性然需要在丰富些。现如今技术更新速度不断加快,技术的提升也是开发者需要具备的,只有不断的学习和积累,才做出的更好的游戏让玩家所喜爱。
参考文献冯广利.浅议计算机科学技术的现状及其发展前景[J].网络安全技术与应用,2015(05):164+166.李兵川.基于Unity3D游戏开发流程分析[J].山东工业技术,2018(07):148.温涵泳.基于HTCVive平台的防化训练虚拟现实系统[D].华南理工大学,2017.王华宾.具有FFT/IFFT和CAN通讯功能的轮速信号处理模块设计[D].燕山大学,2013.刘骏尧.基于Unity3D的策略养成类游戏设计与实现[D].吉林大学,2017.阳菲,贺细平,何俊锋.基于VR与TTS的沉浸式虚拟校园向导系统设计[J].电脑与信息技术,2018,26(04):56-58.李麟.基于SketchUp和ArcGIS的三维可视化技术研究[D].辽宁工程技术大学,2010.倪乐波,戚鹏,遇丽娜,王婧.Unity3d产品虚拟展示技术的研究与应用[J].数字技术与应用,2010(09):54-55刘宁.飞机三维数据可视化探究与实现[J].科技视界,2015(32):9-10.迟晓琳.3D舞蹈人物交互换装系统的设计与实现[D].北京工业大学,2014.祝雁,蔚艳玲.新时期计算机软件开发技术的应用及发展趋势[J].无线互联科技,2018,15(11):48-49.仲于姗.基于Unity的3D虚拟校园漫游系统的开发[D].云南大学,2015.王树斌.浅析Unity3d开发游戏流程及常用技术[J].电脑知识与技术,2012,8(22):5351-5352.阳菲,贺细平,何俊锋.基于VR与TTS的沉浸式虚拟校园向导系统设计[J].电脑与信息技术,2018,26(04):56-58.王腼.基于VR展示与交互的教学系统设计与实现[D].上海交通大学,2013.张乃夫.异构信息系统的数据与文档转换研究[D].吉林大学,2009.韩旭芳.基于开放API的电子商务个性化服务推荐研究[D].石家庄铁道大学,2011.田翠华,许立灿,彭奕翔,陈施恩,陈玉明.基于Unity3D异星大冒险游戏的设计与开发[J].中国现代教育装备,2019(01):6-11.王功利.基于Unity3D的三维动画课件设计与实现[J].科教导刊(下旬),2018(12):28-29.李兵川.基于Unity3D引擎角色扮演类游戏设计及开发[J].科技风,2018(15):11.
致谢四年的大学生活已接近尾声了,一路走来,经历过各种困难,如今,自己校园生活也就此画上句号,今后可能不在校园学习,在公司及社会中学习,但是在校园学习这段时间给我带来的是一种良好的习惯。如果说这四年来我在学校中学到什么?八个字——“精勤博学,学以致用”,通过自己勤奋学习,不断充实自己,将学到的知识技能运用到实践当中,这样付出才有收获。感谢老师在这四年中为我传道授业解惑,感谢老师的谆谆教诲,感谢舍友这四年来对我的关心和照顾,感谢在组织中遇到的每一个人,他们给予我的帮助,因为你们,我的生活才充满乐趣,感谢学校为我的学习生活提供舒适的环境。最后感谢我的父母以及帮助过我的同学朋友,谢谢你们。
ExcelXP的八则快速输入技巧如果我们在用ExcelXP处理庞大的数据信息时,不注意讲究技巧和方法的话,很可能会花费很大的精力。因此如何巧用ExcelXP,来快速输入信息就成为各个ExcelXP用户非常关心的话题,笔者向大家介绍几则这方面的小技巧。1、快速输入大量含小数点的数字如果我们需要在ExcelXP工作表中输入大量的带有小数位的数字时,按照普通的输入方法,我们可能按照数字原样大小直接输入,例如现在要在单元格中输入0.05这个数字时,我们会把“0.05”原样输入到表格中。不过如果需要输入若干个带有小数点的数字时,我们再按照上面的方法输入的话,每次输入数字时都需要重复输入小数点,这样工作量会变大,输入效率会降低。其实,我们可以使用ExcelXP中的小数点自动定位功能,让所有数字的小数点自动定位,从而快速提高输入速度。在使用小数点自动定位功能时,我们可以先在ExcelXP的编辑界面中,用鼠标依次单击“工具”/“选项”/“编辑”标签,在弹出的对话框中选中“自动设置小数点”复选框,然后在“位数”微调编辑框中键入需要显示在小数点右面的位数就可以了。以后我们再输入带有小数点的数字时,直接输入数字,而小数点将在回车键后自动进行定位。例如,我们要在某单元格中键入0.06的话,可以在上面的设置中,让“位数”选项为2,然后直接在指定单元格中输入6,回车以后,该单元格的数字自动变为“0.06”,怎么样简单吧?2、快速录入文本文件中的内容现在您手边假如有一些以纯文本格式储存的文件,如果此时您需要将这些数据制作成ExcelXP的工作表,那该怎么办呢?重新输入一遍,大概只有头脑有毛病的人才会这样做;将菜单上的数据一个个复制/粘贴到工作表中,也需花很多时间。没关系!您只要在ExcelXP中巧妙使用其中的文本文件导入功能,就可以大大减轻需要重新输入或者需要不断复制、粘贴的巨大工作量了。使用该功能时,您只要在ExcelXP编辑区中,依次用鼠标单击菜单栏中的“数据/获取外部数据/导入文本文件”命令,然后在导入文本会话窗口选择要导入的文本文件,再按下“导入”钮以后,程序会弹出一个文本导入向导对话框,您只要按照向导的提示进行操作,就可以把以文本格式的数据转换成工作表的格式了。3、快速输入大量相同数据如果你希望在不同的单元格中输入大量相同的数据信息,那么你不必逐个单元格一个一个地输入,那样需要花费好长时间,而且还比较容易出错。你可以通过下面的操作方法在多个相邻或不相邻的单元格中快速填充同一个数据,具体方法为:首先同时选中需要填充数据的单元格。若某些单元格不相邻,可在按住Ctrl键的同时,点击鼠标左键,逐个选中;其次输入要填充的某个数据。按住Ctrl键的同时,按回车键,则刚才选中的所有单元格同时填入该数据。4、快速进行中英文输入法切换一张工作表常常会既包含有数字信息,又包含有文字信息,要录入这样一种工作表就需要我们不断地在中英文之间反复切换输入法,非常麻烦,为了方便操作,我们可以用以下方法实现自动切换:首先用鼠标选中需要输入中文的单元格区域,然后在输入法菜单中选择一个合适的中文输入法;接着打开“有效数据”对话框,选中“IME模式”标签,在“模式”框中选择打开,单击“确定”按钮;然后再选中输入数字的单元格区域,在“有效数据”对话框中,单击“IME模式”选项卡,在“模式”框中选择关闭(英文模式);最后单击“确定”按钮,这样用鼠标分别在刚才设定的两列中选中单元格,五笔和英文输入方式就可以相互切换了。5、快速删除工作表中空行删除ExcelXP工作表中的空行,一般的方法是需要将空行都找出来,然后逐行删除,但这样做操作量非常大,很不方便。那么如何才能减轻删除工作表中空行的工作量呢?您可以使用下面的操作方法来进行删除:首先打开要删除空行的工作表,在打开的工作表中用鼠标单击菜单栏中的“插入”菜单项,并从下拉菜单中选择“列”,从而插入一新的列X,在X列中顺序填入整数;然后根据其他任何一列将表中的行排序,使所有空行都集中到表的底部。删去所有空行中X列的数据,以X列重新排序,然后删去X列。按照这样的删除方法,无论工作表中包含多少空行,您就可以很快地删除了。6、快速对不同单元格中字号进行调整在使用ExcelXP编辑文件时,常常需要将某一列的宽度固定,但由于该列各单元格中的字符数目不等,致使有的单元格中的内容不能完全显示在屏幕上,为了让这些单元格中的数据都显示在屏幕上,就不得不对这些单元格重新定义较小的字号。如果依次对这些单元格中的字号调整的话,工作量将会变得很大。其实,您可以采用下面的方法来减轻字号调整的工作量:首先新建或打开一个工作簿,并选中需要ExcelXP根据单元格的宽度调整字号的单元格区域;其次单击用鼠标依次单击菜单栏中的“格式”/“单元格”/“对齐”标签,在“文本控制”下选中“缩小字体填充”复选框,并单击“确定”按钮;此后,当你在这些单元格中输入数据时,如果输入的数据长度超过了单元格的宽度,ExcelXP能够自动缩小字符的大小把数据调整到与列宽一致,以使数据全部显示在单元格中。如果你对这些单元格的列宽进行了更改,则字符可自动增大或缩小字号,以适应新的单元格列宽,但是对这些单元格原设置的字体字号大小则保持不变。7、快速输入多个重复数据在使用ExcelXP工作表的过程中,我们经常要输入大量重复的数据,如果依次输入,无疑工作量是巨大的。现在我们可以借助ExcelXP的“宏”功能,来记录首次输入需要重复输入的数据的命令和过程,然后将这些命令和过程赋值到一个组合键或工具栏的按钮上,当按下组合键时,计算机就会重复所记录的操作。使用宏功能时,我们可以按照以下步骤进行操作:首先打开工作表,在工作表中选中要进行操作的单元格;接着再用鼠标单击菜单栏中的“工具”菜单项,并从弹出的下拉菜单中选择“宏”子菜单项,并从随后弹出的下级菜单中选择“录制新宏”命令;设定好宏后,我们就可以对指定的单元格,进行各种操作,程序将自动对所进行的各方面操作记录复制。8、快速处理多个工作表有时我们需要在ExcelXP中打开多个工作表来进行编辑,但无论打开多少工作表,在某一时刻我们只能对一个工作表进行编辑,编辑好了以后再依次编辑下一个工作表,如果真是这样操作的话,我们倒没有这个必要同时打开多个工作表了,因为我们同时打开多个工作表的目的就是要减轻处理多个工作表的工作量的,那么我们该如何实现这样的操作呢?您可采用以下方法:首先按住“Shift"键或“Ctrl"键并配以鼠标操作,在工作簿底部选择多个彼此相邻或不相邻的工作表标签,然后就可以对其实行多方面的批量处理;接着在选中的工作表标签上按右键弹出快捷菜单,进行插入和删除多个工作表的操作;然后在“文件”菜单中选择“页面设置……”,将选中的多个工作表设成相同的页面模式;再通过“编辑”菜单中的有关选项,在多个工作表范围内进行查找、替换、定位操作;通过“格式”菜单中的有关选项,将选中的多个工作表的行、列、单元格设成相同的样式以及进行一次性全部隐藏操作;接着在“工具”菜单中选择“选项……”,在弹出的菜单中选择“视窗”和“编辑”按钮,将选中的工作表设成相同的视窗样式和单元格编辑属性;最后选中上述工作表集合中任何一个工作表,并在其上完成我们所需要的表格,则其它工作表在相同的位置也同时生成了格式完全相同的表格。高效办公Excel排序方法"集中营"排序是数据处理中的经常性工作,Excel排序有序数计算(类似成绩统计中的名次)和数据重排两类。本文以几个车间的产值和名称为例,介绍Excel2000/XP的数据排序方法。一、数值排序1.RANK函数RANK函数是Excel计算序数的主要工具,它的语法为:RANK(number,ref,order),其中number为参与计算的数字或含有数字的单元格,ref是对参与计算的数字单元格区域的绝对引用,order是用来说明排序方式的数字(如果order为零或省略,则以降序方式给出结果,反之按升序方式)。例如图1中E2、E3、E4单元格存放一季度的总产值,计算各车间产值排名的方法是:在F2单元格内输入公式“=RANK(E2,$E$2:$E$4)”,敲回车即可计算出铸造车间的产值排名是2。再将F2中的公式复制到剪贴板,选中F3、F4单元格按Ctrl+V,就能计算出其余两个车间的产值排名为3和1。如果B1单元格中输入的公式为“=RANK(E2,$E$2:$E$4,1)”,则计算出的序数按升序方式排列,即2、1和3。需要注意的是:相同数值用RANK函数计算得到的序数(名次)相同,但会导致后续数字的序数空缺。假如上例中F2单元格存放的数值与F3相同,则按本法计算出的排名分别是3、3和1(降序时)。2.COUNTIF函数COUNTIF函数可以统计某一区域中符合条件的单元格数目,它的语法为COUNTIF(range,criteria)。其中range为参与统计的单元格区域,criteria是以数字、表达式或文本形式定义的条件。其中数字可以直接写入,表达式和文本必须加引号。仍以图1为例,F2单元格内输入的公式为“=COUNTIF($E$2:$E$4,">"&E2)+1”。计算各车间产值排名的方法同上,结果也完全相同,2、1和3。此公式的计算过程是这样的:首先根据E2单元格内的数值,在连接符&的作用下产生一个逻辑表达式,即“>176.7”、“>167.3”等。COUNTIF函数计算出引用区域内符合条件的单元格数量,该结果加一即可得到该数值的名次。很显然,利用上述方法得到的是降序排列的名次,对重复数据计算得到的结果与RANK3.IF函数Excel自身带有排序功能,可使数据以降序或升序方式重新排列。如果将它与IF函数结合,可以计算出没有空缺的排名。以图1中E2、E3、E4单元格的产值排序为例,具体做法是:选中E2单元格,根据排序需要,单击Excel工具栏中的“降序排序”或“升序排序”按钮,即可使工作表中的所有数据按要求重新排列。假如数据是按产值由大到小(降序)排列的,而您又想赋予每个车间从1到n(n为自然数)的排名。可以在G2单元格中输入1,然后在G3单元格中输入公式“=IF(E3=E2,G3,G3+1)”,只要将公式复制到G4等单元格,就可以计算出其他车间的产值排名。二、文本排序选举等场合需要按姓氏笔划为文本排序,Excel提供了比较好的解决办法。如果您要将图1数据表按车间名称的笔划排序,可以使用以下方法:选中排序关键字所在列(或行)的首个单元格(如图1中的A1),单击Excel“数据”菜单下的“排序”命令,再单击其中的“选项”按钮。选中“排序选项”对话框“方法”下的“笔画排序”,再根据数据排列方向选择“按行排序”或“按列排序”,“确定”后回到“排序”对话框(图2)。如果您的数据带有标题行(如图1中的“单位”之类),则应选中“有标题行”(反之不选),然后打开“主要关键字”下拉列表,选择其中的“单位”,选中排序方式(“升序”或“降序”)后“确定”,表中的所有数据就会据此重新排列。此法稍加变通即可用于“第一名”、“第二名”等文本排序,请读者自行摸索。三、自定义排序如果您要求Excel按照“金工车间”、“铸造车间”和“维修车间”的特定顺序重排工作表数据,前面介绍的几种方法就无能为力了。这类问题可以用定义排序规则的方法解决:首先单击Excel“工具”菜单下的“选项”命令,打开“选项”对话框中的“自定义序列”选项卡(图3)。选中左边“自定义序列”下的“新序列”,光标就会在右边的“输入序列”框内闪动,您就可以输入“金工车间”、“铸造车间”等自定义序列了,输入的每个序列之间要用英文逗号分隔,或者每输入一个序列就敲回车。如果序列已经存在于工作表中,可以选中序列所在的单元格区域单击“导入”,这些序列就会被自动加入“输入序列”框。无论采用以上哪种方法,单击“添加”按钮即可将序列放入“自定义序列”中备用(图3)。使用排序规则排序的具体方法与笔划排序很相似,只是您要打开“排序选项”对话框中的“自定义排序次序”下拉列表,选中前面定义的排序规则,其他选项保持不动。回到“排序”对话框后根据需要选择“升序”或“降序”,“确定”后即可完成数据的自定义排序。需要说明的是:显示在“自定义序列”选项卡中的序列(如一、二、三等),均可按以上方法参与排序,请读者注意Excel提供的自定义序列类型。谈谈Excel输入的技巧在Excel工作表的单元格中,可以使用两种最基本的数据格式:常数和公式。常数是指文字、数字、日期和时间等数据,还可以包括逻辑值和错误值,每种数据都有它特定的格式和输入方法,为了使用户对输入数据有一个明确的认识,有必要来介绍一下在Excel中输入各种类型数据的方法和技巧。一、输入文本Excel单元格中的文本包括任何中西文文字或字母以及数字、空格和非数字字符的组合,每个单元格中最多可容纳32000个字符数。虽然在Excel中输入文本和在其它应用程序中没有什么本质区别,但是还是有一些差异,比如我们在Word、PowerPoint的表格中,当在单元格中输入文本后,按回车键表示一个段落的结束,光标会自动移到本单元格中下一段落的开头,在Excel的单元格中输入文本时,按一下回车键却表示结束当前单元格的输入,光标会自动移到当前单元格的下一个单元格,出现这种情况时,如果你是想在单元格中分行,则必须在单元格中输入硬回车,即按住Alt键的同时按回车键。二、输入分数几乎在所有的文档中,分数格式通常用一道斜杠来分界分子与分母,其格式为“分子/分母”,在Excel中日期的输入方法也是用斜杠来区分年月日的,比如在单元格中输入“1/2”,按回车键则显示“1月2日”,为了避免将输入的分数与日期混淆,我们在单元格中输入分数时,要在分数前输入“0”(零)以示区别,并且在“0”和分子之间要有一个空格隔开,比如我们在输入1/2时,则应该输入“01/2”。如果在单元格中输入“81/2”,则在单元格中显示“81/2”,而在编辑栏中显示“三、输入负数在单元格中输入负数时,可在负数前输入“-”作标识,也可将数字置在()括号内来标识,比如在单元格中输入“(88)”,按一下回车键,则会自动显示为“-88”。四、输入小数在输入小数时,用户可以向平常一样使用小数点,还可以利用逗号分隔千位、百万位等,当输入带有逗号的数字时,在编辑栏并不显示出来,而只在单元格中显示。当你需要输入大量带有固定小数位的数字或带有固定位数的以“0”字符串结尾的数字时,可以采用下面的方法:选择“工具”、“选项”命令,打开“选项”对话框,单击“编辑”标签,选中“自动设置小数点”复选框,并在“位数”微调框中输入或选择要显示在小数点右面的位数,如果要在输入比较大的数字后自动添零,可指定一个负数值作为要添加的零的个数,比如要在单元格中输入“88”后自动添加3个零,变成“88000”,就在“位数”微调框中输入“-3”,相反,如果要在输入“88”后自动添加3位小数,变成“0.088”,则要在“位数”微调框中输入“3”。另外,在完成输入带有小数位或结尾零字符串的数字后,应清除对“自动设置小数点”符选框的选定,以免影响后边的输入;如果只是要暂时取消在“自动设置小数点”中设置的选项,可以在输入数据时自带小数点。五、输入货币值Excel几乎支持所有的货币值,如人民币(¥)、英镑(£)等。欧元出台以后,Excel2000完全支持显示、输入和打印欧元货币符号。用户可以很方便地在单元格中输入各种货币值,Excel会自动套用货币格式,在单元格中显示出来,如果用要输入人民币符号,可以按住Alt键,然后再数字小键盘上按“0165”即可。六、输入日期Excel是将日期和时间视为数字处理的,它能够识别出大部分用普通表示方法输入的日期和时间格式。用户可以用多种格式来输入一个日期,可以用斜杠“/”或者“-”来分隔日期中的年、月、日部分。比如要输入“2001年12月1日”,可以在单元各种输入“2001/12/1”或者“2001-12-1七、输入时间在Excel中输入时间时,用户可以按24小时制输入,也可以按12小时制输入,这两种输入的表示方法是不同的,比如要输入下午2时30分38秒,用24小时制输入格式为:2:30:38,而用12小时制输入时间格式为:2:30:38p,注意字母“p”和时间之间有一个空格。如果要在单元格中插入当前时间,则按Ctrl+Shift+;键。了解Excel公式的错误值经常用Excel的朋友可能都会遇到一些莫名奇妙的错误值信息:#N/A!、#VALUE!、#DIV/O!等等,出现这些错误的原因有很多种,如果公式不能计算正确结果,Excel将显示一个错误值,例如,在需要数字的公式中使用文本、删除了被公式引用的单元格,或者使用了宽度不足以显示结果的单元格。以下是几种常见的错误及其解决方法。1.#####!原因:如果单元格所含的数字、日期或时间比单元格宽,或者单元格的日期时间公式产生了一个负值,就会产生#####!错误。解决方法:如果单元格所含的数字、日期或时间比单元格宽,可以通过拖动列表之间的宽度来修改列宽。如果使用的是1900年的日期系统,那么Excel中的日期和时间必须为正值,用较早的日期或者时间值减去较晚的日期或者时间值就会导致#####!错误。如果公式正确,也可以将单元格的格式改为非日期和时间型来显示该值。2.#VALUE!当使用错误的参数或运算对象类型时,或者当公式自动更正功能不能更正公式时,将产生错误值#VALUE!。原因一:在需要数字或逻辑值时输入了文本,Excel不能将文本转换为正确的数据类型。解决方法:确认公式或函数所需的运算符或参数正确,并且公式引用的单元格中包含有效的数值。例如:如果单元格A1包含一个数字,单元格A2包含文本"学籍",则公式"=A1+A2"将返回错误值#VALUE!。可以用SUM工作表函数将这两个值相加(SUM函数忽略文本):=SUM(A1:A2)。原因二:将单元格引用、公式或函数作为数组常量输入。解决方法:确认数组常量不是单元格引用、公式或函数。原因三:赋予需要单一数值的运算符或函数一个数值区域。解决方法:将数值区域改为单一数值。修改数值区域,使其包含公式所在的数据行或列。3.#DIV/O!当公式被零除时,将会产生错误值#DIV/O!。原因一:在公式中,除数使用了指向空单元格或包含零值单元格的单元格引用(在Excel中如果运算对象是空白单元格,Excel将此空值当作零值)。解决方法:修改单元格引用,或者在用作除数的单元格中输入不为零的值。原因二:输入的公式中包含明显的除数零,例如:=5/0。解决方法:将零改为非零值。4.#NAME?在公式中使用了Excel不能识别的文本时将产生错误值#NAME?。原因一:删除了公式中使用的名称,或者使用了不存在的名称。解决方法:确认使用的名称确实存在。选择菜单"插入"|"名称"|"定义"命令,如果所需名称没有被列出,请使用"定义"命令添加相应的名称。原因二:名称的拼写错误。解决方法:修改拼写错误的名称。原因三:在公式中使用标志。解决方法:选择菜单中"工具"|"选项"命令,打开"选项"对话框,然后单击"重新计算"标签,在"工作薄选项"下,选中"接受公式标志"复选框。原因四:在公式中输入文本时没有使用双引号。解决方法:Excel将其解释为名称,而不理会用户准备将其用作文本的想法,将公式中的文本括在双引号中。例如:下面的公式将一段文本"总计:"和单元格B50中的数值合并在一起:="总计:"&B50原因五:在区域的引用中缺少冒号。解决方法:确认公式中,使用的所有区域引用都使用冒号。例如:SUM(A2:B34)。5.#N/A原因:当在函数或公式中没有可用数值时,将产生错误值#N/A。解决方法:如果工作表中某些单元格暂时没有数值,请在这些单元格中输入"#N/A",公式在引用这些单元格时,将不进行数值计算,而是返回#N/A。6.#REF!当单元格引用无效时将产生错误值#REF!。原因:删除了由其他公式引用的单元格,或将移动单元格粘贴到由其他公式引用的单元格中。解决方法:更改公式或者在删除或粘贴单元格之后,立即单击"撤消"按钮,以恢复工作表中的单元格。7.#NUM!当公式或函数中某个数字有问题时将产生错误值#NUM!。原因一:在需要数字参数的函数中使用了不能接受的参数。解决方法:确认函数中使用的参数类型正确无误。原因二:使用了迭代计算的工作表函数,例如:IRR或RATE,并且函数不能产生有效的结果。解决方法:为工作表函数使用不同的初始值。原因三:由公式产生的数字太大或太小,Excel不能表示。解决方法:修改公式,使其结果在有效数字范围之间。8.#NULL!当试图为两个并不相交的区域指定交叉点时将产生错误值#NULL!。原因:使用了不正确的区域运算符或不正确的单元格引用。解决方法:如果要引用两个不相交的区域,请使用联合运算符逗号(,)。公式要对两个区域求和,请确认在引用这两个区域时,使用逗号。如:SUM(A1:A13,D12:D23)。如果没有使用逗号,Excel将试图对同时属于两个区域的单元格求和,但是由于A1:A13和D12:D23并不相交,所以他们没有共同的单元格。在Excel中快速查看所有工作表公式只需一次简单的键盘点击,即可可以显示出工作表中的所有公式,包括Excel用来存放日期的序列值。要想在显示单元格值或单元格公式之间来回切换,只需按下CTRL+`(位于TAB键上方)。EXCEL2000使用技巧十招1、Excel文件的加密与隐藏如果你不愿意自己的Excel文件被别人查看,那么你可以给它设置密码保护,采用在保存文件时用加密的方法就可以实现保护目的,在这里要特别注意的是,自己设定的密码一定要记住,否则自己也将被视为非法入侵者而遭拒绝进入。给文件加密的具体方法为:A、单击“文件”菜单栏中的“保存或者(另存为)”命令后,在弹出的“保存或者(另存为)”的对话框中输入文件名;B、再单击这个对话框中“工具”栏下的“常规选项”按钮,在弹出的“保存选项”的对话框中输入自己的密码;这里要注意,它提供了两层保护,如果你也设置了修改权限密码的话,那么即使文件被打开也还需要输入修改权限的密码才能修改。C、单击“确定”按钮,在弹出的密码确认窗口中重新输入一遍密码,再点击“确认”,最后点“保存”完成文件的加密工作。当重新打开文件时就要求输入密码,如果密码不正确,文件将不能打开。2、对单元格进行读写保护单元格是Excel执行其强大的计算功能最基本的元素,对单元格的读写保护是Excel对数据进行安全管理的基础。对单元格的保护分为写保护和读保护两类,所谓写保护就是对单元格中输入信息加以限制,读保护是对单元格中已经存有信息的浏览和查看加以限制。对单元格的写保护有两
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 动漫制作合同范本
- 农村地抵押合同范例
- 买卖鞋合同范例
- 公路发包合同范本
- 买断企业产品合同范本
- 代办检测合同范本
- 企业bt项目合同范本
- 三方工程合同范本
- 冷库改造项目合同范本
- 包干服务合同范例
- 血液透析安全注射临床实践专家共识解读
- GB/T 41873-2022塑料聚醚醚酮(PEEK)树脂
- SB/T 10940-2012商用制冰机
- GB/T 25945-2010铝土矿取样程序
- GB/T 16604-2017涤纶工业长丝
- 2023年教师资格证考试历年小学综合素质写作题及范文
- GB 18451.1-2001风力发电机组安全要求
- PDCA患者健康教育-课件
- 交通行政处罚自由裁量权课件
- 格力多联机系列can通讯协议第五代
- 人教版(PEP)英语四年级下册-Unit 1My school A Lets spell 课件
评论
0/150
提交评论