unity3d小游戏开发(星空大战)毕业实训报告大学论文
unity3d期末总结

unity3d期末总结Unity3D是一款流行的跨平台游戏开发引擎,底层采用C++编写,其开放的API极大地方便了开发者的工作。
作为一名Unity3D开发者,我在这个学期学到了很多东西,也遇到了很多挑战。
在这篇总结中,我将回顾我在这个学期里的学习过程,分享我的经验和体会。
首先,我想谈谈我最喜欢的部分——游戏开发。
通过Unity3D,我学会了如何创建游戏场景,添加角色模型、动画和音效等元素,并通过脚本编写控制逻辑。
最让我兴奋的一次经历是我成功地完成了一个小型角色扮演游戏的开发,包括地图设计、战斗系统和任务系统等。
在这个过程中,我学会了如何使用Unity3D的工具和功能来优化游戏性能,并在发现问题时进行调试和修复。
除了游戏开发,我还学习了Unity3D的其他一些功能,比如虚拟现实(VR)和增强现实(AR)。
通过VR和AR技术,我能够创建令人惊叹的交互式体验,让用户沉浸在虚拟世界中。
我通过编写脚本,实现了手柄和头戴设备的控制,以及物体的碰撞检测和互动。
这让我更加明白了虚拟现实技术的潜力和未来发展的方向。
在学习过程中,我还发现了一些挑战和困难。
首先,学习Unity3D需要一定的编程基础。
虽然Unity3D提供了可视化的编辑器,但为了充分发挥其功能,熟悉C#编程语言是非常重要的。
此外,理解游戏开发的基本原理和逻辑也是必要的。
我曾在一个游戏开发项目中遇到了一些困难,例如控制角色移动和碰撞检测等问题。
经过不断的学习和实践,我成功地解决了这些问题,并进一步提高了我的技能。
除了个人技能的提升,我还意识到团队合作的重要性。
在一个游戏开发项目中,不仅需要个人的努力和创造力,还需要与团队的其他成员进行有效的沟通和协作。
我通过与其他人一起工作,学会了如何分工合作,互相支持,并共同解决问题。
团队合作使得我们的项目进展顺利,并在规定的时间内完成了开发任务。
在将来,我希望能继续深入学习和使用Unity3D。
作为一款功能强大的游戏引擎,Unity3D不断更新和改进,提供了许多新特性和工具,为开发者提供了更好的开发体验。
unity设计实训心得通用5篇

unity设计实训心得通用5篇unity设计实训心得通用5篇Unity设计实训是一个整合各种技能的全面性任务,需要多方面的知识和技能,包括设计、程序、美术和音效等,以及代码的编写和调试,通过多次实践和尝试来掌握技能。
今天整理了unity设计实训心得精选。
欢迎你的阅读和借鉴。
unity设计实训心得(精选篇1)因为考虑到以后毕业有可能从事这个行业的工作,因此我非常珍惜这次实习的机会,通过实习,了解现今社会所需求的人才,了解平面设计在实际应用中的地位,以及自己在社会中的定位,根据结论,总结出自己的方向。
在有限的时间里加深对各种平面设计的了解,找出自身的不足。
这次实习的收获对我来说有不少,我自己感觉在知识、技能、与人沟通和交流等方面都有了不少的收获。
总体来说这次是对我的综合素质的培养,锻炼和提高。
一、通过实习,使自己所学的专业知识得到了巩固和提高在学校虽然学了两年多的平面设计,但是真正到实践中还需要从头学起,因为要学的东西实在太多了。
刚到公司,看到设计师们熟练的技能、高超的制作水平让自己好生羡慕。
在接下来实习的日子里,我虚心向老师请教,边干边学,逐渐掌握了抠图、制图、排版和各种色彩、整体布局的搭配效果等。
同时,也掌握了电脑软件操作的小技巧,比如在corelDRAW中做包装盒的时候,线与线的对齐,以前我在学校学的基本上都是用鼠标点菜单进行选项操作,来到这里大家都基本上用快捷键操作,又快又省力。
随着实习的不断深入,我对photoshop和coreldraw制图都能够熟练掌握了。
我不满足在设计上实习,还主动要求到各个岗位去锻炼,通过在各个岗位工作,掌握了设计的构造和各项工艺流程。
比如一幅图在经过客户认可后,设计师填写好打印单并附上图形小样拿到彩印室进行喷绘或写真。
二、通过实习,使自己的社会经历得到了丰富,能力得到了锻炼在实习过程中,不但要熟练掌握过硬的专业知识,高超的制作水平和敏捷的思维能力,还要学会与客户进行有效的沟通,把准客户的脉搏,客户想要怎样的效果,我们设计师就要为客户制作出他想要的效果。
unity3D本科生实训报告

unity3D本科生实训报告第一篇:unity3D本科生实训报告实训报告题目: untiy3D游戏实训小结实训方式导师制班级(2012级数媒1班)届别(2016届)学号姓名指导老师(导师制导师/预就业导师/统一实训导师)计算机学院 2015年9月一、实训目的1.1、理解使用Unity3D制作游戏的基本过程和方法。
1.2、理解Unity3D软件的操作界面1.3、掌握地形的创建和简单编辑方法1.4、掌握游戏场景中光源的添加和设置方法1.5、掌握场景中简单对象的创建与属性设置方法1.6、掌握场景中玩家角色的创建与设置1.7、掌握基于碰撞检测的游戏逻辑脚本编程实现二、实训意义2.1、贯彻坚强实践环节和理论联系实际的教学原则,增加学生对专业感性认识的深广度,运用所学知识和技能为后续课程奠定较好的基础。
2.2、通过实训,开阔学生眼界和知识面,获得计算机硬件安装和系统维护的感性认识。
与此同时安排适量的讲课或讲座,促进理论同实践的结合,培养学生良好的学风。
2.3、实中进行专业思想与职业道德教育,使学生了解专业、热爱专业,激发学习热情,提高专业适应能力,初步具备职业道德观念。
2.4、通过对专业、行业、社会的了解,认识今后的就业岗位和就业形式,使学生确立学习方向,努力探索学习与就业的结合点,而发挥学习的主观能动性。
三、实训内容3.1场景搭建3.1.1利用基础物体搭建场景:游戏对象的Transform属性可以进行位置、旋转、大小的设置。
属性:1、transform.position在世界空间坐标transform的位置2、transform.rotaition//旋转3、transform.scale//缩放方法:1、位移:transform.Translate2、旋转:transform.Rotate3、围绕旋转:transform.RotateAround 查找:Transform.Find //通过名字查找子物体并返回它3.1.2搭建地形1、地形绘制2、草地绘制3、添加树木4、添加天空盒子5、增加雾气和水湖3.2利用基本物体制作小游戏:3.2.1 gameobject随机生成GameObject是Unity场景里面所有实体的基类.对象创建:GameObjectcube=GameObject.CreatePrimitive(PrimitiveType.Cube);克隆对象:GameObject.Instantiate(cube);//克隆一个cube对象销毁对象:GameObject.Destroy(cube, 2f);//两秒之后cube对象销毁对象的查找:GameObject go=GameObject.Find(“Cube”);GameObject go2=Game Object.FindWithTag(“cube”)3.2.2碰撞检测碰撞器(Collision)OnCollisionEnter(Collision col){}//进入OnCollisionStay(Collision col){}//逗留OnCollisionExit(Collision col){}//退出触发器(Trigger)OnTriggerEnter(Collider col){}//进入OnTriggerStay(Collider col){}//逗留 OnTriggerExit(Collider col){}//退出区别:是否勾选IsTrigger,触发器必须勾选上Is Trigger,碰撞器不需要。
u3d实训报告

u3d实训报告U3D(Unity 3D)是一种使用广泛的游戏引擎,被广泛用于开发各类游戏、虚拟现实应用和增强现实应用。
本报告将对我参加的U3D实训进行详细的介绍和总结。
一、实训目的U3D实训的目的是让学员们掌握U3D引擎的基本使用方法,了解游戏开发的流程,培养实际项目的开发能力。
通过实践操作,学员们能够将所学知识运用到具体的项目中,提高自己的实践能力和解决问题的能力。
二、实训内容1. U3D引擎介绍在实训的第一部分,我们学习了U3D引擎的基本概念、特点和应用范围。
了解了U3D引擎的主要功能和工作原理,以及开发游戏所需的基本工具和资源。
2. U3D环境配置接下来,我们进行了U3D环境的配置。
包括安装U3D引擎和相关工具,设置开发环境,创建项目等。
在这一部分中,我们还学习了U3D的界面布局和常用功能模块。
3. U3D基础知识学习为了更好地理解和应用U3D引擎,我们深入学习了U3D的基础知识,包括游戏对象的创建和管理、场景的搭建和编辑、材质和纹理的使用、光照和阴影等。
同时,我们还学习了脚本编程,掌握了C#语言和U3D脚本的基本语法和使用方法。
4. 游戏开发案例实践在实训的最后阶段,我们进行了游戏开发案例的实践。
根据实训要求,我们选择了自己感兴趣的游戏题材和类型,通过U3D引擎实现了一个简单的游戏项目。
在项目中,我们运用了之前学到的知识和技能,完善了游戏的各个模块,最终完成了一个小型的游戏作品。
三、实训心得通过参加U3D实训,我对游戏开发有了更深入的了解,掌握了使用U3D引擎进行游戏开发的技能。
以下是我在实训中的一些心得总结:1. 实践是最好的学习方式在实训中,我们不仅仅是学习理论知识,更重要的是通过实际操作来巩固和应用所学的知识。
在实践中,我们能够遇到各种问题和挑战,通过解决问题来提高自己的开发能力。
2. 团队合作的重要性在游戏开发中,团队合作是非常重要的。
每个成员都承担着不同的角色和责任,只有团队合作才能取得最好的结果。
u3d实训报告

u3d实训报告U3D(Unity 3D)是一款广泛应用于游戏开发的跨平台游戏引擎。
本篇文章旨在探讨U3D实训的报告,介绍U3D实训的重要性、实训的过程以及实训的价值。
第一部分:介绍U3D实训的重要性U3D实训是指学员通过实践操作,深入掌握U3D引擎的使用方法和技巧。
在游戏开发领域中,掌握一款优秀的游戏引擎是非常重要的。
U3D作为一款功能强大且易于上手的游戏引擎,被广泛应用于游戏行业。
因此,参与U3D实训可以帮助学员快速掌握U3D的开发技术,提升游戏开发的能力。
第二部分:U3D实训的过程U3D实训通常包括以下环节:1. 熟悉U3D引擎:学员需要了解U3D引擎的基本概念和工作原理。
可以通过阅读相关文档、观看教学视频等方式进行学习。
2. 编程基础学习:学员需要掌握基本的编程知识,例如C#语言和面向对象编程的基本概念。
这些基础知识对于后续的U3D开发非常重要。
3. 实践操作:学员通过实践操作来应用所学的知识。
可以选择完成一些简单的小项目,如搭建场景、添加角色和特效等,以此来熟悉U3D的各项功能。
4. 深入实战:在掌握了基本操作之后,学员可以尝试开发一款完整的游戏项目。
这个过程中,学员将会面临实际开发中的各种挑战和问题,需要学会解决并改进。
第三部分:U3D实训的价值参与U3D实训有以下几个价值:1. 提升就业竞争力:在游戏开发行业,拥有U3D开发经验将会使求职者更具竞争力。
通过参与U3D实训,学员能够熟练掌握U3D引擎,增加自己在就业市场上的吸引力。
2. 增加团队协作能力:在实践过程中,学员通常需要与团队成员合作来完成项目。
这种合作经验有助于学员培养良好的团队协作能力和沟通技巧。
3. 培养创造力和问题解决能力:在实践中,学员需要解决各种技术问题和开发难题。
通过解决这些问题,学员能够培养创造力和问题解决能力,从而更好地适应游戏开发的需求。
4. 拓宽视野和思维方式:通过参与U3D实训,学员会接触到各种游戏类型和题材,了解到游戏开发的多样性。
unity实训总结

unity实训总结Unity实训总结Unity是一款跨平台的游戏开发引擎,具有强大的功能和灵活的工具,被广泛应用于游戏开发、虚拟现实、增强现实以及模拟等领域。
在这次的实训中,我通过学习和实践,对Unity的使用有了更深入的了解和掌握。
在实训中我学会了如何搭建Unity的开发环境。
Unity支持多种操作系统,包括Windows、MacOS和Linux等,我们可以根据自己的需求选择合适的版本进行安装。
在安装完成后,我还需要注册一个Unity账号,这样可以方便地管理项目和获取最新的更新。
在实训过程中,我学会了使用Unity的编辑器界面。
Unity的编辑器界面分为多个区域,包括场景视图、游戏视图、层次结构视图、资源视图等。
通过这些视图,我可以方便地编辑场景、创建游戏对象、管理资源等。
同时,Unity还提供了丰富的工具和面板,如属性检查器、动画编辑器、粒子系统等,使开发过程更加高效和便捷。
在实训中,我还学会了使用C#语言进行游戏逻辑的编写。
C#是Unity的主要脚本语言,我可以通过编写C#脚本来实现游戏对象的行为和交互。
Unity提供了很多内置的API和组件,如碰撞器、刚体、动画控制器等,我可以通过调用这些API和组件来实现各种功能。
同时,Unity还支持自定义脚本和组件,我可以根据项目需求进行扩展和修改。
在实训中,我还学习了如何导入和管理游戏资源。
Unity支持导入多种类型的资源,包括模型、纹理、音频、视频等。
我可以通过资源视图将这些资源导入到项目中,并进行管理和组织。
同时,Unity 还提供了资源优化和压缩的功能,可以降低游戏的内存占用和加载时间。
在实训过程中,我还学会了使用Unity的物理引擎和碰撞检测。
Unity的物理引擎可以模拟真实世界中的物理效果,如重力、摩擦、碰撞等。
我可以通过给游戏对象添加刚体组件和碰撞器组件,来实现物体的运动和碰撞效果。
同时,Unity还提供了碰撞事件的回调函数,我可以在碰撞发生时进行相应的处理。
unity3d游戏开发之培训心得体会五篇

unity3d游戏开发之培训心得体会五篇第一篇:unity3d游戏开发之培训心得体会北京培训Unity已经有一个月了,自己从刚开始对班里人的不熟悉到熟悉,对以前不努力的自己也做了深刻的反省。
来了这里之后,就觉得大学自己根本就没有去认真的学习知识,来到这里之后,我觉得自己的每一天都是充实有趣的。
每天学习久了,疲惫的时候,和同学们聊聊天,疲惫的我也会觉得精神不少。
这里的学习气氛很好,在大学里,每个人几乎都是懒散的,有点懒惰的我也跟着偷起了懒。
在这里,想玩一会的时候,看到周围的人都在努力的学习,向前跑,懒惰的自己又怎么好意思去玩呢,便收起自己想要偷懒的心,奋力的向他们追去。
我的学习不是最好的,但是我跟自己说,没关系的,只要你努力了,不要觉得自己笨,笨鸟还会先飞呢,那我就比别人提前飞,总会追上前面的人的步伐,更有可能超过他;只要你努力了,你就有收获。
下面来介绍一下我们的一天。
早上由于每天都睡得很晚所以老师给推迟的九点上课。
我每天八点起来洗漱,八点半从宿舍出来去班里。
(我们教室外的楼道)每天打开门进去,都会看到几个起的早的同学在教室里学习了,每次看到他们都会鼓励我前进,坐到座位上,我就开始复习前一天学习的知识,保证自己的学习质量。
现在讲的都是基础,所以一定要好好学,就像楼房如果不打好地基,盖高了就会容易倒塌,传说中的豆腐渣工程,学习也是如此。
班里有很多学习很好的同学,被我们称之为“大神”。
他们每次的成绩都让人羡慕,我总是暗下决心,我要努力的学习,即使我超越不了,也要和他们并排向前走。
到了中午,午饭时间,我们女生宿舍时有个小厨房的,有小家的感觉,我们每天中午都会回去自己做饭吃,这也也省了不少钱。
毕竟北京的消费很高,老在外面吃饭,花销太大了。
(宿舍小厨房)中午吃完饭,我一般都是坐一会就回到教室,去会顾上午学习的内容,记记笔记。
但是每次到了教室就会看到比我还努力的同学。
每天都是这样的状态,叫我怎么不努力?还有什么心思去做别的无关学习的事情呢?(午休被偷拍的我)大家每天的学习,不是纪律上的约束,不是老师的督促,每天都学习到晚上十点十一点,是大家自觉的去学习知识,不浪费一分一秒。
unity毕业设计

unity毕业设计Unity毕业设计毕业设计是每个大学生都要经历的一段重要时光,对于计算机科学与技术专业的学生来说,选择一个合适的毕业设计题目是至关重要的。
在我即将毕业的时候,我选择了Unity作为我的毕业设计主题。
Unity是一款跨平台的游戏开发引擎,被广泛应用于游戏开发、虚拟现实和增强现实等领域。
作为一名对游戏开发充满热情的学生,我一直对Unity感兴趣。
因此,我决定将Unity作为我的毕业设计主题,并且将其应用于一个真实的项目中。
在选择Unity作为毕业设计主题之后,我开始思考如何设计一个能够展现我技术能力和创造力的项目。
我决定开发一个基于Unity的虚拟现实游戏,旨在提供一个沉浸式的游戏体验。
我将游戏的背景设定在一个神秘的迷宫中,玩家需要通过解谜和战斗来逐渐揭开迷宫的秘密。
为了实现这个项目,我需要学习和掌握Unity的各种功能和特性。
我花了很多时间研究Unity的文档和教程,学习如何创建场景、添加角色、设计游戏逻辑等。
我还学习了一些基本的3D建模和动画技巧,以便能够创建出逼真的游戏世界和角色。
在开发过程中,我遇到了很多挑战和困难。
有时候,我会遇到一些编程错误,导致游戏无法正常运行。
有时候,我会遇到一些设计问题,需要重新思考和调整游戏的结构和玩法。
但是,我从这些挑战和困难中学到了很多宝贵的经验和教训。
我学会了如何解决问题、如何提高效率,并且更加深入地理解了游戏开发的各个方面。
在毕业设计的最后阶段,我成功地完成了我的Unity虚拟现实游戏。
通过这个项目,我不仅展现了自己的技术能力和创造力,还提高了自己的团队合作和项目管理能力。
我学会了如何与其他开发人员合作、如何管理时间和资源,并且如何处理项目中的各种问题和挑战。
通过这个毕业设计项目,我不仅获得了对Unity的深入了解和掌握,还获得了对游戏开发过程的全面认识。
我意识到游戏开发是一个复杂而有趣的过程,需要不断地学习和提高。
我也意识到,团队合作和项目管理是游戏开发中不可或缺的一部分,只有通过良好的团队合作和项目管理,才能开发出优秀的游戏作品。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
毕业实训报告课题名称: Unity 游戏开发专业:移动开发班级:学号:学生姓名:指导教师:年月日中原工学院毕业实训任务书摘要摘要游戏,目前已经是最大众化的娱乐之一,而其中的3D游戏也是技术含量较高的项目之一。
Unity3D是一个3D/2D游戏开发工具和游戏引擎套件,其中包括了图形、音频、物理、网络等多方面的引擎支持,并且有一个非常强大的编辑器来整合这一切,非常适合于游戏开发。
本文主要是以Unity5.3.8为开发环境,设计并开发一款单机版的三维游戏——直升机大战,旨在介绍直升机战斗游戏的实现方法,并逐步介绍使用Unity3D开发3D游戏的方法和技巧。
通过这次游戏制作,使我体会到了,制作一个游戏所需要做的工作,包括前期的游戏策划,素材的制作,到后期的游戏的设计,代码实现等,最终形成一个完整的3D游戏,并通过Unity3D选择平台生成可执行文件。
但本次设计的直升机战斗游戏所做工作还不够完善,开始场景中菜单比较简单,游戏中武器只有一种,关卡也只有一个,这些都需要以后进一步设计.第1章项目分析1.1 Unity 及其组成的介绍本书主要讲解的是,如何使用 Unity 开发 2D 游戏。
但在开始讲解之前,最好先熟悉一下Unity 这个工具。
本章会首先介绍 Unity 的下载和安装,然后会介绍 Unity 界面的各组成部分,这些知识会在本书后面的章节频繁使用,所以不要掉以轻心。
1.2 Unity 概述Unity 现如今已是非常的流行,因此在开始学习 2D 游戏开发之前,本节就来简要说明下Unity,及其下载和安装方法。
1.Unity 简介 Unity 是一款跨平台的专业游戏引擎,可以使用它轻松的开发各种 2D 和 3D 游戏,然后部署到各种游戏平台上。
当然也包括这些主流游戏平台: Windows、 iOS、 Android、 Xbox 360、 PS3。
第2 章2.1 需求分析玩家:控制游戏中的战机,向敌机发出攻击;敌机:敌机不会发射子弹攻击玩家,boss敌机由程序控制自动向玩家飞机发出攻击子弹:玩家和boss 敌机都拥有自己的子弹,玩家的子弹可以用来攻击所有的敌机子弹礼包:玩家飞机得到子弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能炸弹礼包:玩家飞机得到子弹礼包后,玩家飞机如果使用炸弹可以清除屏幕上除boss外的所有敌机。
2.2 功能需求:1》用户进入游戏开始菜单可以选择开始游戏,退出游戏,游戏帮助;2》进入游戏后可暂停游戏3》玩家飞机以一定速度自下而上飞行,用户可以控制飞机前后左右移动4》玩家飞机一直发子弹,用户通过控制飞机位置来扫描敌机;5》不同种类的敌机以一定速度随机出现;6》玩家飞机的发射子弹击中敌机后消失。
7》玩家飞机达到一定分数后,程序会随机提供子弹包和炸弹包;》8》玩家与礼包碰撞后即可得到礼包;9》弹礼包后,玩家的飞机会在一段时间内有发射双排子弹功能10》进行游戏时,屏幕左上角会显示用户达到的分数;2.3 用户功能需求由于本游戏交互性好,简单易操作,对用户并没有特殊的要求。
一般用户经过几分钟后就可以掌握游戏规则。
2.4 游戏性能需求1)实时性:本应用为手机游戏对于用户操作必须做出立即响应,否则本游戏失败2)单机手机游戏最大的特点纪委已操作行,用户在不看说明的情况下也能够玩,并且在玩过几遍之后即熟悉本游戏规则。
这是本应用对于操作性的要求。
2.5 游戏流程:如图2.5-1第3章场景设计3.1.创建游戏场景1.由于创建的是2d项目,则将图片拖入Scene中,该图片自动成为一个精灵,所以将图片信息拖入摆放即可。
如图3-1-1 所示2.下面创建一个GameManager文件,其绑定在摄像机中,主要负责飞机生命,玩家得分,背景播放等的显示功能。
而生命,得分的显示需要我们创建GUIText来摆放。
public enum GameState{Runing,Pause}public class GameManager : MonoBehaviour {public static GameManager _instance;public int score=0;private GUIText guiText;public GameState gameState = GameState.Runing;void Awake(){_instance=this;guiText=GameObject.FindGameObjectWithTag("ScoreGUI").GetComponent<GUIText>();}// Update is called once per framevoid Update () {guiText.text="Score:"+score;}public void transfromGameState(){if(gameState==GameState.Runing){pauseGame();}else if(gameState==GameState.Pause){continueGame();}}3.然后我们来实现背景的滚动。
首先创建两个一样的背景图片上下摆放,如下图所示,这里切换到3d 模式,更加形象如图3-1-34.下面创建用于绑定在背景上的脚本BackgroundTransform,代码如下public class BackgroundTransform : MonoBehaviour {public static float moveSpeed = 2f;// Update is called once per framevoid Update () {this.transform.Translate( Vector3.down * moveSpeed * Time.deltaTime );Vector3 postion = this.transform.position;if(postion.y<=-8.52f){this.transform.position = new Vector3(postion.x,postion.y+8.52f*2,postion.z );}}}然后将脚本绑定在两张背景图上即可。
5.主角创建与背景创建基本一样,也是可以用一张2d贴图,就不多说了。
主角脚本主要处理移动,发射子弹,处理碰撞等,代码如下:public class Bullet : MonoBehaviour {public float speed = 2;// Update is called once per framevoid Update () {transform.Translate( Vector3.up * speed *Time.deltaTime );if(transform.position.y>4.3f){Destroy(this.gameObject);}}void OnTriggerEnter2D(Collider2D other) {if(other.tag=="Enemy"){if(!other.GetComponent<Enemy>().isDeath){other.gameObject.SendMessage("BeHit");GameObject.Destroy(this.gameObject);}}6.上面代码中我用了bulletTop,bulletLeft,bullfight,这是我为主机添加的两个子对象,主要是用于发射子弹,相当于炮筒吧,而bullet则是定义的预设,其中绑定的脚本后面会说明。
3-1-6代码实现如下:public class Gun : MonoBehaviour {public float rate =0.2f;public GameObject bullet;public void fire(){GameObject.Instantiate(bullet,transform.position,Quaternion.identity );}public void openFire(){InvokeRepeating("fire",1,rate);}public void stopFire(){CancelInvoke("fire");}好了,通过以上的代码我们就可以按键盘的方向键移动飞机,按空格键发射子弹了,我已经等不及要打敌人了。
3.2 创建敌机1.敌机也是先拖入敌机图片,然后绑定脚本,添加组件,然后保存为预设,我们以后还有个敌机生产器要生产敌机呢。
我创建了三种敌机预设3-2-1 敌机预制2.敌机主要是移动,碰撞。
下面来看看敌机脚本:public enum EnemyType{smallEnemy,middleEnemy,bigEnemy}public class Enemy : MonoBehaviour {public int hp = 1;public float speed = 2;public int score = 100;public EnemyType type= EnemyType.smallEnemy;public bool isDeath = false;public Sprite[] explosionSprites;private float timer=0;public int explosionAnimationFrame=10;private SpriteRenderer render;public float hitTimer = 0.2f;private float resetHitTime ;public Sprite[] hitSprites;// Use this for initializationvoid Start () {render = this.GetComponent<SpriteRenderer>();resetHitTime=hitTimer;hitTimer=0;}// Update is called once per framevoid Update () {this.transform.Translate( Vector3.down*speed*Time.deltaTime );if(this.transform.position.y<=-5.6f){Destroy(this.gameObject);}if(isDeath){timer+=Time.deltaTime;// 0int frameIndex = (int)(timer/(1f/explosionAnimationFrame));if(frameIndex>=explosionSprites.Length){//destroyDestroy(this.gameObject);}else{render.sprite= explosionSprites[frameIndex];}}else{if(type==EnemyType.middleEnemy||type==EnemyType.bigEnemy){if(hitTimer>=0){hitTimer-=Time.deltaTime;int frameIndex = (int)((resetHitTime-hitTimer)/(1f/explosionAnimationFrame));frameIndex%=2;render.sprite= hitSprites[frameIndex];}}}if (Input.GetKeyDown(KeyCode.Space) && BombManager._instance.count>0 ) {toDie();}}public void BeHit(){hp-=1;// explosionif(hp<=0){toDie();}else{hitTimer=resetHitTime;}}private void toDie(){if(!isDeath){isDeath=true;GameManager._instance.score+=score;}}}3-2-23.上面使用到了一个动画,就是敌机爆炸时的动画。