




已阅读5页,还剩33页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江苏科技大学本科毕业设计(论文)江苏科技大学本 科 毕 业 设 计(论文)全套设计加扣3012250582 学 院 机械工程学院 专 业 机械设计制造及其自动化学生姓名 班级学号 指导教师 二零一五年六月II江苏科技大学本科毕业论文基于虚拟装配技术的减速器拆装实验模拟Experimental simulation of Reducer disassembly Based on Virtual Assembly Technology (理工类):江苏科技大学毕业论文(设计)任务书 学 院:机械工程 专 业:机械设计制造及其自动化 学 号: 姓 名: 指导教师: 职 称: 副教授 2014年 12 月 1 日 毕业设计(论文)题目: 基于虚拟装配技术的减速器拆装实验模拟1、 毕业设计(论文)内容及要求(包括原始数据、技术要求、达到的指标和应做的实验等)1. 查阅国内外文献资料,了解虚拟实验室的研究背景与意义,撰写文献综述,介绍齿轮减速箱拆装虚拟实验研究现状与存在问题;2. 分析齿轮减速箱拆装实验的功能需求,研究总体方案; 3. 通过分析齿轮减速箱的结构,采用三维建模软件建立模型; 4. 在unity3d中实现虚拟环境下减速器的虚拟拆装; 5. 撰写毕业设计论文,并进行毕业设计答辩。二、完成后应交的作业(包括各种说明书、图纸等)1. 毕业设计论文一份(不少于1.5万字)2. 外文译文一篇(不少于5000英文单词)三、完成日期及进度自2015年 3 月2日 起至 2015年6月13日止进度安排:1. 第一周:查阅资料、调研,完成开题报告;2. 第二至四周:分析齿轮减速箱拆装实验的功能需求,研究总体方案;3. 第五至七周:过分析齿轮减速箱的结构,采用三维建模软件建立模型;4. 第八至十三周:在unity3d中实现虚拟环境下减速器的虚拟拆装;5. 第十四周:完成毕业论文,准备答辩;6. 第十五周:毕业答辩。四、同组设计者(若无则留空): 五、主要参考资料(包括书刊名称、出版年月等):1 池建斌,郭海新,王晨,冯桂珍. 基于VRML-JAVA的减速器虚拟拆装系统的实现J. 工程图学学报. 2008(02)2 吕鸿,周艺,姜玉华,杨金花. 基于SolidWorks虚拟设计双曲柄式少齿差减速器J. 机械. 2014(09)3 谢叻,肖波,吴巧教,李敏. 虚拟装配技术及应用J. 模具技术. 2006(01)4 安美玲. 减速器虚拟装拆及运动仿真教学软件设计J. 机械. 2008(11)5 王明波,焦学健,柴山. 主减速器虚拟装配的数据管理J. 农业装备与车辆工程. 2011(05) 系(教研室)主任: (签章) 年 月 日 学院主管领导: (签章) 年 月 日注:1、如页面不够可加附页 2、以上一四项由指导教师填写江苏科技大学本科毕业设计(论文)摘 要本文介绍了利用unity3d软件制作减速器虚拟拆装实验的过程。首先利用Solidworks建立减速器三维模型;然后使用3dsmax软件将原文件格式SLDASM转换为FBX,然后导入unity3d中进行操作;最后在unity3d中完成剩下的工作。在unity3d中需要实现减速器的点击拆、拖拽装以及爆炸图和装配图等功能。本设计的重点和难点在于unity3d中的编程。Unity3d身为一种三维游戏开发引擎,可以添加很多物理属性,但具体的动作需要靠脚本控制。因此,本文会介绍一些java或C语言的使用。在最后部分,利用unity3d软件自带的功能将已完成的功能制作成exe格式,以方便其他人的使用。关键词:减速器拆装;虚拟实验室;unity3d;脚本控制AbstractThe process of reducer virtual disassembly experiment using software unity3d was described in this paper. Firstly, the three-dimensional model of reducer was established by solidworks; then 3dmax software was used to convert file formats from SLDASM to FBX, and then import it in unity3d for operation; finally, the rest of the work was done in unity3d. In unity3d it was needed to achieve the function of reducer Click demolition, dragging equipment , explosion , assembly drawings and other functions. The emphasis and difficulty of this design is the programming in unity3d. As a virtual game development engine, unity3d can add a lot of physical attributes, but the specific actions are required controlling by the scripts. Therefore, the use of some java or C language was introduced in this article. In the end, in order to facilitate the use of other people, the completed functionality was made into exe format using unity3d software.Keywords: reducer disassembly; virtual Lab; unity3d; controlled by script目 录第一章 绪论11.1 研究背景11.2虚拟实验室21.2.1虚拟实验室简介21.2.2虚拟实验室特点21.3 虚拟拆装31.4 研究意义41.5 主要内容4第二章 软件素材的制备52.1 Solidworks中的准备工作52.1.1 减速箱零件的建模52.1.2 减速箱的装配72.1.3 减速箱爆炸图的制作82.1.4 工程图的制作92.2 CAD中的准备工作92.3 3ds max中的准备工作10第三章 软件的制作103.1 unity3d简介103.2设计方案113.3 场景一的创建113.4场景二的创建123.5场景三的创建133.6 场景四的创建143.7 场景五的创建153.8 场景六的创建173.9 场景七的创建183.10场景八的创建193.11 场景九的创建203.12 打包软件为exe格式21结 论23致 谢24参考文献2526第一章 绪论1.1 研究背景实验在任何学校的教学活动中都是一个不可或缺的过程, 特别是对于理工类大学的教学来说,有很多科目的学习都是基于实验课程的,实验(特别是动手实验)对于培养学生的自主性、创新性、动手能力和解决实际问题的能力是举足轻重的1。学生通过一定的实验,能够更好地理解和掌握本学科的理论知识,同时还能锻炼到他的综合测试技能和实践动手能力。实验平台对于实验教学来说,是重中之重,其优劣精良直接决定了实验教学成功与否。传统的实验室教学无论是在设备仪器的维护方面还是在实验安全保障的方面都存在着相当多的困难,特别是资源的投入问题,这无不制约了各校实验教学的发展。而在网络信息技术高速发展的今天,传统的教学方法、实验内容和实验平台的改进都成为了现实,通过计算机仿真技术、虚拟现实技术(VR)建立一个虚拟实验室无疑是一个非常好的方法。减速器的拆装实验是每个学校机械专业不可或缺的重要实验教学环节。通过进行减速器拆装,学生应初步了解各机构的设计原则、掌握减速箱的结构,从而能够更好地去理解机械原理等课程的内容、也为后面完成相应的课程设计打下一定的基础,同时也培养了学生分析和解决问题的工程能力。而现在基本上各高校的减速器拆装实验都还沿用传统的实验教学方式,也就是老师先讲解一番、然后学生分组来拆装减速箱,这种方式受到了实验资源也就是减速箱个数的限制,学生不能完整或者说仔细的尽兴的研究减速箱,从而使教学效果受到了影响2。应用虚拟现实技术(VR)设计出来的减速器拆装虚拟实验室,不仅可以有效地降低实验室的建设成本,提高学生做实验的效率,更可以实现实验资源的共享和异地远程教学3,可谓一举多得。1.2虚拟实验室1.2.1虚拟实验室简介早在1989年,美国弗吉尼亚大学(University of Virginia)的威廉沃尔夫(William Wolf)教授就提出了虚拟实验室的概念4。虚拟实验室是一个利用计算机依照现实的实验室制作出来的虚拟的环境,为了在计算机上创建出这样一个可视化的实验环境, 需要借助相当多的技术包括图形/图像显现技术、三维动画技术、计算机模拟仿真技术和虚拟现实技术(VR)等。在这里面,每一个可以看到、触发到的器件都代表着一种实验设备,不管是教师或者是学生都可以随时在电脑前进入到虚拟实验室并根据情况来操作各种仪器,主要方法是利用键盘的输入来控制或者使用鼠标左中右键的动作来实现点击与拖拽等,以此来完成各种各样的实验。虚拟实验室是一种不同寻常的、松散的解决问题的环境,它给用户提供了一个基于网络的平台用来进行实验教学、技术交流等工作, 这种基于计算机的虚拟样机系统设计出来的虚拟实验室代表着一种崭新的科学研究与工程设计的方法,是一种不同于理论和实物实验的研究设计方式和措施5。虚拟实验室一般包括验证型、测试型、设计型、纠错型、创新型等多种类型5。1.2.2虚拟实验室特点虚拟实验室的特点主要有以下几点:(1)成本低。相比于传统实验室的建立需要场地,购买各种昂贵的仪器等花费巨大的工程,虚拟实验室来源于虚拟原型技术,而虚拟现实软件在可视化方面具有巨大的优势6,同时可交互地控制虚拟物体是虚拟现实技术要求的最必要的功能,利用这些功能对虚拟对象进行几何构造、功能需求、生产制造等方面交互的建模与分析6,几乎不涉及实物方面,因此成本低。(2)效率高。借助虚拟实验室我们可以节省大量的生产物理原型等方面的繁琐的工作,操作者不仅只需集中主要的精力去钻研实验对象自身的特性和规律6,还能够轻易利用计算机计算速度、联网等方面的优势,从网络上获得在线帮助等,这都可以帮助使用者直捣黄龙,迅速达到实验所要求的具体目标,从而提高了学习和研究的效率,更减轻了工作的压力。(3)开放性。虚拟实验室具有开放性,主要有两个方面的具体表现,一个方面是实验资源的开放,一个完整的虚拟实验室应该拥有不同的虚拟实验环境、不同的实验模式、不同的实时仿真软件、丰富大量的元器件等,学生完全能够根据自己不同的实验需要来进行选择;虚拟实验室开放性的另一方面则体现在:当实验内容确定后, 学生可以根据具体的实验要求来构建自己的实验室环境、选择自己的实验模式、挑选合适的实验仪器设备等。在这种情景下,学生就似乎拥有了一个有着大量多种实验仪器和设备的实验室,从而为学生的发明创造等异想天开的想法提供了必要条件。(4)自主性。一般传统的实验室都会受到作息时间和实验室条件的限制,而一旦开发出虚拟实验室,学生只需拥有一台电脑,就能够自由地选择实验时间和实验内容,极其快捷方便。在强调学习的主动性和研究性的今天,这就打破了传统实验由老师设计然后学生动手的模式,从而为学生提供了一个可以充分发挥自己想象力、创造力和展现才能的空间,让学生对实验拥有了高度的自主性。1.3 虚拟拆装随着市场竞争的日趋激烈,制造业被要求必须要以最短的产品开发周期(Time)、最好的产品质量(Quality)、最便宜的生产成本(Cost)和最好的技术支持与售后服务(Service)即“TQCSP”来赚取市场与用户,且同时要求制造业对环境的伤害减至最小7。伴随着计算机软件、硬件技术的发展,先进的制造技术不断涌现且更新换代迅速,在20 世纪 90年代,虚拟制造(Virtual Manufacturing,VM)出现了,作为一种新的制造概念和理论,其全新的制造体系和模式已经成为了现代制造技术与系统发展的必然趋势8。而虚拟装配技术作为虚拟制造的关键技术之一,近几年受到了学术界和工业界的广泛关注,因为其还促进了敏捷制造等先进制造技术的发展。虚拟装配有两个方面的含义,一方面它是一个按照相互约束相互限制的关系对每个零件的模型进行重新定位的过程,能够对一个产品在设计方面的不合理性进行有效地分析;另一方面,它可以真实的模拟出产品的实际的装配过程,并可以根据其中出现的问题进行虚拟的调整以求达到最好的可装配性8。统计表明,一个产品的用来装配的费用能够占据整个生产成本的30% 50乃至更高7,因此如果产品的装配工艺的质量和效率能够明显提高、成本能够明显降低,那么就能够大幅度增强制造业的竞争力。因此可以缩短产品的设计开发周期、降低生产成本、提高产品质量的虚拟装配技术就是我们要努力发展的。1.4 研究意义虚拟装配的实现能够对产品摆脱物理样机的试制及对物理样机进行装配的过度依赖起到帮助,并可以明显提高产品从成型到生产再到装配的质量与速度,从而降低了产品的开发成本,缩短了产品的开发周期。计算机技术的快速发展已经使虚拟实验室的设计与开发成为现实,并可以应用于实践教学。虚拟实验室的建设,能够降低相当多的实验室建设成本,从而缓解了由于财政不足给实验教学环节带来的不利影响,对培养学生的实践操作能力大有裨益。在此同时,虚拟实验室的创建对远程教育中开设实验操作课程提供了帮助,它对于教学观念、教学方法和教学内容的改革有明显的促进作用,在教育、科研领域应用前景必将是广阔的。1.5 主要内容本文将主要的针对减速器的虚拟拆装实验进行介绍。其中需要用到的软件主要是四个:Solidworks、Auto CAD、3ds max、unity3d。Solidworks主要用于建立减速箱的三维模型以及制作减速箱的爆炸图;CAD主要用来制作减速箱装配体的二维图;3ds max是用来将SLDASM格式的装配体转换成FBX格式以便导入unity3d中进行操作;unity3d就是我们要用到的最多的软件,减速箱的虚拟拆装就将在其中完成。而我们虚拟拆装动作的实现大部分都是靠java脚本的运行,因此本文将程序语句进行重点关注。第二章 软件素材的制备2.1 Solidworks中的准备工作我们在unity3d软件中需要用到的一些资源包括减速箱的零件模型、三维的装配体模型和一张二维装配体工程图,这些都可以使用 Solidworks 软件来制作9。Solidworks 是一款流行的好用的三维造型软件,也是世界上第一个基于Windows开发的三维CAD系统10。我们能够通过Solidworks进行三维实体设计还可以将建好的零件进行三维虚拟装配,还可以根据三维实体零件和装配体来创建二维工程图,有一个好处是,零件图、装配图和工程图具有关联性约束9,也就是说,我们对任何一个图形的修改都会自动导致其他两个图形的改变。除此之外,Solidworks还可以根据装配体添加一些运动副甚至一些力来进行运动仿真或者simulation分析等,也因此产品开发中得到了广泛的应用。2.1.1 减速箱零件的建模本次所要创建的减速器是一级减速器,它的主要零部件包括圆锥滚动轴承、大齿轮、箱盖、键、套筒、轴、小齿轮轴、大小通透端盖、箱体、销、垫片、各种螺栓等9。在实际操作中,创建每个零件时,有一套基本的流程,首先是根据零件的形状选择一个视图并绘制出在这个方向上零件的一个草图,然后根据实际的基本特征需要选择拉伸(切除)工具或者扫描(切除)工具或者旋转或者放样等等的工具来建出零件的部分造型,然后重复这一步骤直至完成零件大部分的建模,最后根据零件具体形状通过倒角、圆角、抽壳、镜像、阵列等命令来进行完善工作9。下面是建模的顺序和步骤:(1)创建减速器的下箱体。箱体是对称的,因此先建出下箱体一侧的沉孔、轴承座加强筋等特征,然后只需通过特征复制就可以建出另一侧的特征。最后创建箱体上的其余特征,螺栓孔、销孔、放油孔和油尺孔等。(2)创建减速器的轴。齿轮轴的建模基本上只通过拉伸切除就能实现。(3)创建减速器的大齿轮。齿轮可以通过Solidworks自带的ToolBox中的传动件配置出来然后修改参数生成,最后只需稍作修改即可完成。(4)创建减速器的齿轮轴。齿轮轴的创建可以通过先创建一个齿轮然后进行拉伸的方式实现。(5)创建减速器的箱盖。和下箱体相同,先创建箱盖一侧轴承座、安装孔等特征,然后复制特征完成另一侧的创建。创建加强筋、销孔、螺栓孔等。(6)创建减速器的套筒。套筒身为一个圆环状物体,仅需拉伸后倒个角即可。(7)创建垫片和端盖。垫片只需拉伸,钻孔;端盖也只需旋转、钻孔。(8)创建放油塞,油尺,透视盖等。(9)创建轴承、螺栓、销、键等标准件。标准件全部可以通过自带的ToolBox来生成,只需设置一下参数就好,简单方便。图2-1下箱体和齿轮轴2.1.2 减速箱的装配在 Solidworks 中进行装配,有从底往上和从顶往下两种方法。这里减速器的装配一般采用从下向上的方法进行。装配的配合关系有很多,因为此处不需要进行运动仿真,我们只需要标准配合里的重合、平行、垂直、相切、同轴心、距离、角度、锁定几个命令。因为后面工作的需要,这里要创建三个装配体,分别为大齿轮轴的装配体,小齿轮轴的装配体,减速箱总的装配体。下面是每个装配体的装配步骤:(1)小齿轮轴的装配。首先新建一个装配体文件(或者直接点击文件从零件到装配体),然后将小齿轮轴拖入,作为装配的基准,然后只需插入两个轴承利用同轴心和重合两个命令即可完成装配,保存。(2)大齿轮轴的装配。同样先插入轴作为基准,然后插入键,通过重合完成配合;再插入齿轮,同轴心、重合完成配合;插入套筒,同轴心、重合完成配合;最后插入两个轴承完成装配,保存。(3)总体装配。首先是作为基准的箱体,因为装配体中不仅可以插入零件也可以插入装配体,所以这里可以直接插入上面已经装配好的大小齿轮轴。然后可以通过移动命令或者旋转工具拖动转动零件,让其易于装配。插入箱盖,使用重合同轴心等约束条件完成配合。插入垫片端盖等,根据约束将其固定。最后就是剩下的螺栓之类的零件了,完成装配后,保存。图2-2 大小齿轮轴和减速箱装配体2.1.3 减速箱爆炸图的制作Solidworks 可以制作出的装配体的爆炸视图,并且可以根据爆炸视图制作出装配体拆卸过程的动画视频。为此,首先对减速器各个零部件的正确的拆卸顺序做一个规划,设置好爆炸路径,保存后,就可以根据这个爆炸视图制作出良好的减速箱拆卸过程动画。此减速器的拆装顺序为各端盖上的螺栓端盖垫片箱盖上的螺栓和销箱盖大小齿轮轴轴承套筒大齿轮键。(为简单直观方便,同一面上螺栓等都可以作为一个组一起拆下)生成爆炸视图前,要先设置爆炸路径。点击选择零件(选多个时按住Ctrl键)后会看到每个零件的坐标轴,点住坐标轴箭头可以拖动零件从而设置爆炸路径。生成爆炸视图之后,就可以进行动画制作了,首先选择Motion Study选项,然后打开“动画向导” 对话框,点击选择“爆炸”选项,确定后弹出对话框,根据需要填写时间设置。时间长度控制着整个减速箱拆卸过程的动画的播放速度。如果喜欢,可以先设置一下装配体的旋转,以便观察,我这里没有旋转,所以拆卸的开始时间也就是0s,设置延迟时间为30s。在 Solidworks Animator 界面中,可以看到很多的时间点时间线,如果沿着时间线拖动时间栏就可以看到整个拆卸的过程,如果有的零件的拆卸顺序弄错了,我们可以通过拖动时间点来进行调整9。 因为“可拆即可装”,当我们想要重新将减速器装配起来时就可以解除爆炸,所以与上面的爆炸图的设置方法相同,重新根据需要更改时间设置,到这里我们就制作完了拆卸和装配过程的动画。此时选择“保存动画” ,选择压缩格式,保存,AVI格式的视屏也就制作出来了。图2-3 减速箱爆炸图2.1.4 工程图的制作在Solidworks中可以轻易的由三维零件生成二维工程图,只需点击文件从零件到工程图,根据实际需要选择图纸大小,点击确定就可生成二维图,可以对比例做一下调整,接下来在右侧的“视图调色板”中选择选择标准视图的观察方向,拖拽到文件中去,即可生成一个视图,如果不是简单的三视图,可以使用工具栏的“剖面视图”、“局部视图”、“剪裁视图”等工具,建立其他的视图,直到能够完整表现零件或者装配体。因为在这里我们只需一张装配图,而在Solidworks中装配图有一些地方难以修改,因此我们还需转到CAD中进行操作。为此,我们先保存一下,然后再另存为DWG格式。图2-4 Solidworks生成的二维图2.2 CAD中的准备工作CAD作为一款众所周知的软件,主要就是用来画工程图的。在这里我们用来完善前面导出来的装配图。要做的工作包括修改一些细节,例如线宽图层之类,然后添加明细表等。图2-5 装配图的一个剖视图2.3 3ds max中的准备工作3D Studio Max,常简称为3ds Max或MAX,是Discreet公司(后被Autodesk公司合并)基于PC系统开发的三维动画渲染和制作软件11。我们在本软件中可以添加相机材质等内容,也可以设置动作等,但这些我们在后面的unity3d中也可以办到,因此这里我们只做一下格式转换。首先打开软件,选择文件导入,找到建好的装配体三维模型打开。然后调整一下坐标轴的位置,选择自定义单位设置,选择厘米,确定退出。再次选择文件导出,选择FBX格式,所有设置不变,确定导出,完成操作。图2-6 3ds max中的工作第三章 软件的制作3.1 unity3d简介Unity3D是由Unity Technologies公司开发的一个帮助工程师甚至普通玩家轻松创建例如三维虚拟游戏、建筑可视化(控制人物在建筑群里游走观察)、可控三维动画等交互类型内容的多平台的综合型游戏开发工具,是一个整合各种运行环境的专业游戏制作引擎12。Unity和Director, Blender game engine, Virtools 或 Torque Game Builder等软件相类似,都是以交互的图型化开发环境为首要方式。Unity3d的编辑器在Windows 和Mac OS X环境下运行,但它开发出来的游戏可以发布至Windows、Mac、Wii 、iPhone 和Android等平台,甚至也可以利用Unity web player插件发布网页游戏,支持Mac 和Windows的网页浏览 13。Unity3D引擎特点:1、编程界面简单明了,Game界面可以查看效果,自带的脚本编辑器效率高,开发游戏异常方便;5、同时支持Java Script、C#、Boo三种脚本语言,这对初学者来说是一个福音;2、unity3d支持大部分格式,只需将文件拖拽至Assets面板中,文件就会自动瞬时导入,贴图材质等还会自动转换格式;4、unity3d的三维效果支持OpenGL和Direct11等显卡驱动13,它的物理引擎功能强大但却容易上手,并且可以轻松调用质量很高的粒子系统,虚拟效果相当逼真;3、unity3d支持一键发布,只需选择发布平台并稍作调整,其它自动完成;6、unity3d具有强大的性能,出色的开发效率,现在社会急需精通这方面的人才,学会之后不愁没饭吃13。3.2设计方案根据要求,经过分析后,决定创建9个场景来实现减速器的虚拟拆装。场景一是导航界面;场景二用来介绍软件操作说明;场景三用来播放爆炸图视频;场景四用来存放装配图;场景五用来实现手动拆装导航页面;场景六用来实现小齿轮轴的拆装;场景七用来实现大齿轮轴的拆装;场景八用来实现减速箱的总体拆装;场景九用来实现减速箱的点击拆装。根据设计方案,我们接下来就可以进行设计。3.3 场景一的创建场景一是一个导航界面,比较简单。首先需要一张背景图片,我们可以到学校官网下载一张学校的图片导入软件来使用。点击Create选择GUI Texture就创建了一个图片纹理,然后将下载的图片文件拖入Texture框中,然后调整一下坐标位置,背景就设置好了,可以点击运行按钮进行预览。接下来创建标题,点击Create选择GUI Text,在Text框中填入“减速器拆装实验模拟”,然后修改一下位置颜色即可。最后需要添加按钮,按钮需要靠脚本来控制。以下为控制脚本:function OnGUI () if(GUI.Button(Rect(800,500,80,40),退 出) /创建一个按钮 Application.Quit(); /点击代表退出 if(GUI.Button(Rect(600,400,80,40),手 动) /按钮x,y坐标分别为600,400 Application.LoadLevel(01); /点击导入场景1 if(GUI.Button(Rect(400,400,80,40),自 动) /按钮长宽大小为80,40 Application.LoadLevel(06); /点击导入场景6 if(GUI.Button(Rect(400,500,80,40),爆炸图) /按钮内容为爆炸图 Application.LoadLevel(02); /点击导入场景2 if(GUI.Button(Rect(600,500,80,40),装配图) /按钮内容为装配图 Application.LoadLevel(07); /点击导入场景7 if(GUI.Button(Rect(800,400,80,40),说 明) /按钮内容为说明 Application.LoadLevel(08); 14 /点击导入场景8图3-1 场景一3.4场景二的创建场景二用来介绍软件的操作说明。此场景相当简单,只需要加入三个GUI Text即可,每个Text框中分别填入“操作说明”、“自动模式中通过点击零件拆卸;手动模式中通过拖拽进行安装”、“鼠标左键点击选择;鼠标右键按住平移;鼠标滚轮滚动缩放;鼠标中键按住旋转(某些场景不可用)。”。最后需要添加一个返回按钮,脚本为if(GUI.Button(Rect(50,30,80,40),返 回) /添加一返回按钮 Application.LoadLevel(00); 14 /导入场景0图3-2 场景二3.5场景三的创建场景三用来控制爆炸图视屏的播放。将制作好的爆炸图视屏导入软件,在场景中添加一立方体(Cube)和一个平行光(Directional light),调整立方体的大小,并将视屏作为材质球拖到立方体上,调整平行光位置亮度,将摄像机调整好,运行预览。控制视屏播放暂停停止及返回的脚本如下:var movTexture : MovieTexture; /定义一个变量来存放视屏function Start () renderer.material.mainTexture = movTexture; /视屏赋值movTexture.Play(); /播放视频function OnGUI() if (GUILayout.Button(播放/继续) /创建一播放按钮 if (!movTexture.isPlaying) /视频是否播放 movTexture.Play(); / 播放/继续播放视频 if (GUILayout.Button(暂停播放) /点击暂停播放按钮 movTexture.Pause(); /暂停播放 if (GUILayout.Button(停止播放) /点击停止播放按钮 movTexture.Stop(); /停止播放 if(GUI.Button(Rect(0,90,60,30),退 出) /点击退出按钮 Application.LoadLevel(00); 15 /导入场景0图3-3 场景三3.6 场景四的创建场景四用来存放装配图。这里只需将装配图作为背景插入即可,然后需要添加几个按钮来切换页面,添加按钮的代码如下:function OnGUI () if(GUI.Button(Rect(50,50,80,40),总 装) /点击退出按钮 Application.LoadLevel(05); /导入场景5 if(GUI.Button(Rect(150,50,80,40),自 动) /点击退出按钮 Application.LoadLevel(06); /导入场景6 if(GUI.Button(Rect(250,50,80,40),返 回) /点击退出按钮 Application.LoadLevel(00); 14 /导入场景0图3-4 场景四3.7 场景五的创建场景五用来实现手动拆装的导航页面。此场景中需要添加一减速箱的模型用以观察外观,可以直接将Assets下的减速器模型拖入到场景中,调整其坐标。还需要建立一平面作为工作台,为了美观大方,加入天空盒,方法是:点击工具栏的AssetsImport PackageSkyboxes导入,再点击工具栏的EditRender Settings,点击Skybox Materials后面的框框选择填空效果。然后要添加几个按钮来切换界面。最后需要对摄像机添加脚本来控制摄像机的移动旋转缩放等命令。脚本如下:public class MouseOrbit_ForRTS_CSharp : MonoBehaviour public float ZoomSpeed = 20; / 定义公有变量public float MovingSpeed = 1f;public float RotateSpeed =5; public float distance = 5;void Start () /distance = Mathf.Abs(transform.position.y/Mathf.Sin(transform.eulerAngles.x); void Update () Quaternion rotation; Vector3 position;float delta_x,delta_y,delta_z;float delta_rotation_x,delta_rotation_y;if(Input.GetMouseButton(1)delta_x = Input.GetAxis(Mouse X) * MovingSpeed;delta_y = Input.GetAxis(Mouse Y) * MovingSpeed;rotation = Quaternion.Euler(0, transform.rotation.eulerAngles.y,0 );transform.position =rotation * new Vector3(-delta_x,0,-delta_y)+transform.position; if(Input.GetAxis(Mouse ScrollWheel)!= 0)delta_z = -Input.GetAxis(Mouse ScrollWheel) * ZoomSpeed;transform.Translate(0,0,-delta_z);distance += delta_z; if (Input.GetMouseButton(2) delta_rotation_x = Input.GetAxis(Mouse X) * RotateSpeed;delta_rotation_y = -Input.GetAxis(Mouse Y) * RotateSpeed;position =transform.rotation* new Vector3(0,0,distance)+transform.position;transform. Rotate(0,delta_rotation_x,0,Space.World);transform. Rotate(delta_rotation_y,0,0);transform.position =transform. rotation* new Vector3(0,0,-distance)+position;16图3-5 场景五3.8 场景六的创建场景六用来实现小齿轮轴的拆装操作。在此场景中需要将小齿轮轴拖入并改变各个零件的位置以方便后面的安装,为方便观察,对不同的零件添加不同颜色的材质球。为了能被鼠标点到,每个零件必须添加碰撞器。方法为:点击零件,在Inspector面板的最下面Add ComponentPhysicsMesh Collider。除了必要的按钮脚本外,这里还需要为每个零件加一个让其能够被鼠标点到并拖拽移动的脚本,此外还要为除齿轮轴之外的每个零件加一个定位的脚本,也就是当它被拖到准确位置时,松掉鼠标左键,零件定位,完成安装。下面是鼠标点击拖拽的脚本:var mouseOverColor = Color.blue; /声明一个蓝色变量private var originalColor : Color; /声明一个变量存储原来的颜色function Start () originalColor = renderer. sharedMaterial. color; /开始时得到物体本来的颜色function OnMouseEnter () renderer. material. color = mouseOverColor;/当鼠标滑过时改变物体颜色为蓝色 print(gameObject. transform. position); function OnMouseExit () renderer. material. color = originalColor;/当鼠标滑出时恢复物体本来颜色function OnMouseDown () print(gameObject. transform. position); var screenSpace = Camera. main. WorldToScreenPoint(transform.position); /三维物体坐标转屏幕坐标 /将鼠标屏幕坐标转为三维坐标,再算出物体位置与鼠标之间的距离 var offset = transform. position - Camera. main. ScreenToWorldPoint(Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z); print(down); while (Input. GetMouseButton(0) /print(button0); var curScreenSpace = Vector3(Input.mousePosition.x, Input.mousePosition.y, screenSpace.z); var curPosition = Camera.main.ScreenToWorldPoint(curScreenSpace) + offset; transform. position = curPosition; yield;/这个很重要,循环执行16 图3-6 场景六3.9 场景七的创建场景七用来实现大齿轮轴的拆装。同场景六相似,本场景中的零件也要改变材质,添加碰撞器等。因为鼠标的拖拽只能在同一平面内,为简便起见,每当有两个坐标准确时,就认为此零件已经装配到位。下面是附加在键上的定位脚本。function OnMouseUp () if(gameObject. transform. position.x-13gameObject.transform.position.x-10 gameObject.transform.position.y17gameObject.transform.position.y20) /判断物体的坐标是否-13x-10,17y20 gameObject. transform. position=Vector3(-11.7,18.6,29.2); /将物体移动到括号内的坐标上else if(gameObject.transform.position.x-13gameObject.transform.position.x-10 gameObject.transform.position.z28gameObject.transform.position.z31) /判断物体的坐标是否-13x-10,28z31 gameObject. transform. position=Vector3(-11.7,18.6,29.2);else if(gameObject.transform.position.y17gameObject.transform.position.y20 gameObject. transform. position.z28gameObject.transform.position.z31)/判断物体的坐标是否17y20,28z31 gameObject. transform. position=Vector3(-11.7,18.6,29.2); else gameObject. transform. position=Vector3(-11.7,18.6,-5); 图3-7 场景七
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 张齐华倍数与因数课件
- 2025春季内蒙古包头市东河区机关所属事业单位引进高层次和紧缺急需人才51人考前自测高频考点模拟试题及完整答案详解
- 2025湖南省肿瘤医院高层次人才公开招聘44人模拟试卷及答案详解(考点梳理)
- 水果废弃物综合利用园区创新创业项目商业计划书
- DB6101-T 3155-2023 公用纺织品清洗质量评价规范 住宿
- 物流运输车辆安全检查及维护记录
- 设施农业物联网设备维护手册
- 基于大数据的快递评价方法-洞察及研究
- 初中数学重难点突破训练
- 系统建模与实验验证-洞察及研究
- join-in-六上-Unit3-Festivals-Part1市公开课一等奖省赛课微课金奖课
- AS9100D-(2016)-标准培训课件
- 设备维保的预防性保养与维护策略
- 【经典阅读】四年级阅读训练-人物描写分析(知识梳理+例文解析)(有答案)
- 多格列艾汀片-药品临床应用解读
- 图书馆外文图书分编工作细则
- 干漆膜(涂层)厚度检测报告
- DIN-EN-10228-3德国探伤标准
- 2022版义务教育艺术(音乐)课标试题及答案
- 采购需求调查报告
- 5E-MAG6700全自动工业分析仪使用说明书A016916
评论
0/150
提交评论