Unity课程设计
- 格式:doc
- 大小:1.09 MB
- 文档页数:19
一、实践任务:自由物体创建任务设计Unity 3D中基本几何体主要是指立方体、球体、胶囊体、圆柱体、平面等,如下图所示。
在Unity 3D中,可以通过执行GameObject->3D Object菜单命令创建基本几何体。
步骤 1:双击Unity软件快捷图标。
启动 Unity 3D 软件,建立一个空项目,设置其名称以及存储路径,单击 New按钮即生成一个新项目,如下图所示。
步骤 2:执行 File→Save Scene 命令,保存场景,将其命名为 scene,单击保存按钮,如下图所示。
步骤 3:创建平面。
执行 GameObject→3D Object→Plane 命令,在Inspector(检视)视图中Transform→Position中设置位置在(0,-1,-2)处,如下图所示。
步骤 4:创建立方体。
执行 GameObject→3D Object→Cube 命令,设置位置在(-1,3,1)处,如下图所示。
步骤 5:创建球体。
选择 GameObject→3D Object→Sphere,设置位置在(-1,1,-2)处,如下图所示。
步骤 6:创建胶囊体。
执行 GameObject→3D Object→Capsule 命令,设置位置在(-1,1,2)处,如下图所示。
步骤 7:创建圆柱体。
执行 GameObject→3D Object→Cylinder 命令,设置位置在(2,1.4,2)处,如下图所示。
步骤 8:执行 File→Build Settings 命令,弹出 Build Settings 窗口,单击Add Open Scenes按钮,将当前场景pro1添加到发布项目中,然后选择 PC 平台,最后单击 Build 按钮,如下图所示。
步骤9:当完成了打包后,双击可执行文件 Scene.exe,打包后的游戏程序便立即运行起来,此时在场景中出现了一个平面,上面依次摆放着胶囊体、球体、圆柱体以及立方体,如下图所示。
2017-2018学年第二学期
《Unity3D开发》课程设计要求和评分标准
一、课程设计要求:
1、根据自己的兴趣爱好独立设计、制作手机游戏,游戏内容与主题明确,逻辑清晰。
2、整个游戏文件的脚本文件不少于2个(脚本代码要加注释),工程中使用图片及其他素材数目不少于5个。
制作不少于1个prefab文件,至少有1个场景,文件中结构清晰,逻辑明确,设计2D和3D游戏均可。
注意:下载的图片必须经过ps 过再次使用。
3、做好的游戏文件至少生产一个电脑版游戏文件,整个工程文件必须经压缩之后再上传到指定的FTP上,压缩后的文件大小不许超过50兆(50M)。
不经压缩上传作业,一律视为无效作业,将被删除。
二、课程设计内容要求
娱乐性强的游戏;
智力类游戏;
学习类游戏;
射击类游戏;
格斗类游戏;
赛车类游戏;
其他健康、积极向上的游戏。
三、实训评分标准
以下列出每项内容的满分,根据实际情况可酌情加、减分。
四、实训成果上交时间、方式
参加实训的同学,请于2018年12月18日之前将制作好的游戏打包传到指定的FTP中,逾期不候,责任自负。
大家务必保证自己提交的作品不含病毒。
若因含有病毒,被杀毒软件删除,导致作品缺失,后果由个人自行承担。
1.Unity 3D界面Unity 3D拥有强大的编辑界面,开发者在创建项目过程中可以通过可视化的编辑界面创建游戏及虚拟现实。
Unity 3D 的基本界面主要包括菜单栏、工具栏以及五大视图。
这5个视图分别为Hierarchy(层次)视图、Project(项目)视图、Inspector(检视)视图、Scene(场景)视图和Game(游戏)视图。
在Unity 3D 中有几种类型的视图,每种视图都有指定的用途。
2.Unity界面布局点击右上角Layouts 按钮可以改变视图模式,在下拉列表中看到很多种视图,其中有2 by 3、4 Split、Default、Tall、Wide等,如下图所示。
Unity2by3界面Unity 4 Split界面Unity Tall界面Unity Wide界面3.Hierarchy层次视图层次视图包含了当前场景中的所有游戏物体。
我们在游戏开发中所创建的GameObject都会出现在Hierarchy视图中。
当我们想要寻找场景中的某个物体时,只要在Hierarchy视图中找到对应物体的名称双击即可。
我们还可以选中物体点击鼠标右键轻松的实现GameObject的复制、删除等操作。
4.Project项目视图项目视图相当于一个资源仓库,我们所有项目资源都会放置在这里,他的主要作用就是管理我们的项目资源。
项目视图左侧是一个层次面板,打开它可以看见他是一层一层的文件夹,当你选中其中一个文件夹,它相应的内容就会显示在右侧的面板中。
5.Inspector属性编辑器Unity中的游戏是由多边形物体、脚本、声音或其它图形元素组成。
我们在Hierarchy视图中选中某一个物体后,相应的在右侧的Inspectror视窗会显示当前选择物体的详细信息,包括物体上当前连接的所有Componens(组件)和它们的属性。
5.Scene视图场景视图是该面板为Unity的编辑面板,是创建游戏的主要场所。
我们所创建的所有灯光、物体、资源都会显示在场景视图中,同时我们可以在场景视图中进行选择和定位环境物体、角色物体、摄像机、敌人角色等,构建游戏中所能呈现景象6.Game视图该面板是用来渲染场景面板中景象的,该面板不能用作编辑,但却可以呈现完整的动画效果。
unity课程设计趣味小球一、教学目标本课程旨在通过趣味小球项目的设计与实现,让学生掌握Unity基本操作、熟悉C#编程语言,并培养学生的创新思维与团队协作能力。
具体目标如下:1.知识目标:使学生了解Unity游戏引擎的基本功能,掌握C#编程语言的基本语法,理解游戏开发的基本流程。
2.技能目标:培养学生运用Unity引擎创建游戏对象、处理游戏逻辑、设计游戏界面和调试游戏的能力。
3.情感态度价值观目标:激发学生对游戏开发的兴趣,培养学生的创新精神和团队协作意识,提高学生解决实际问题的能力。
二、教学内容本课程的教学内容围绕Unity游戏引擎的基本操作和C#编程语言展开。
教学大纲如下:1.Unity基本操作:Unity界面及功能介绍、游戏对象创建与操作、游戏场景搭建、游戏资源导入与管理等。
2.C#编程语言:基本语法、常用类库、编程规范、面向对象编程等。
3.游戏开发实践:游戏设计、游戏逻辑编程、游戏界面设计、游戏测试与优化等。
4.项目实战:以趣味小球项目为主线,让学生动手实践,完成游戏的设计与开发。
三、教学方法为提高教学效果,本课程将采用多种教学方法相结合的方式,包括:1.讲授法:讲解Unity基本操作和C#编程语言的基本概念,为学生提供理论支持。
2.案例分析法:分析经典游戏案例,让学生了解游戏开发的过程与技巧。
3.实验法:引导学生动手实践,完成趣味小球项目的开发,提高学生的实际操作能力。
4.小组讨论法:分组进行项目开发,鼓励学生相互交流、讨论,培养团队协作能力。
四、教学资源为实现教学目标,我们将为学生提供丰富的教学资源,包括:1.教材:《Unity游戏引擎入门与应用》等。
2.参考书:《C#编程语言》、《Unity游戏引擎教程》等。
3.多媒体资料:教学视频、课件、案例素材等。
4.实验设备:计算机、网络、投影仪等。
5.线上资源:Unity官方文档、教程、论坛等。
五、教学评估为全面、客观地评估学生的学习成果,本课程将采用以下评估方式:1.平时表现:评估学生在课堂上的参与程度、提问回答、团队协作等方面的表现,占总评的30%。
unity3d泡泡课程设计一、课程目标知识目标:1. 学生掌握Unity3D的基础操作和界面布局;2. 学生了解泡泡游戏的基本原理和开发流程;3. 学生学会运用Unity3D中的物理引擎实现泡泡的碰撞和消除效果;4. 学生掌握基本的编程知识,能够运用C#编写简单的游戏逻辑。
技能目标:1. 学生能够独立创建一个简单的泡泡游戏项目;2. 学生能够运用Unity3D中的工具和功能进行场景、角色和道具的设计与制作;3. 学生能够通过编程实现游戏中的交互功能,如泡泡的发射、移动和消除;4. 学生具备解决问题的能力,能够针对游戏开发过程中的问题进行调试和优化。
情感态度价值观目标:1. 学生培养对游戏开发的兴趣和热情,激发创新思维;2. 学生养成团队协作和沟通的良好习惯,能够与组员共同完成项目;3. 学生学会尊重他人的劳动成果,遵循游戏开发行业的道德规范;4. 学生通过游戏开发,培养审美观念和艺术素养,提升个人综合素质。
课程性质:本课程为实践性课程,注重培养学生的动手能力和创新能力。
学生特点:学生处于初中年级,对游戏具有较高的兴趣和热情,具备一定的计算机操作能力。
教学要求:教师需结合学生的年龄特点和知识水平,采用讲解、示范、指导等方式进行教学,确保学生在掌握知识技能的同时,培养良好的情感态度价值观。
在教学过程中,将课程目标分解为具体的学习成果,以便进行教学设计和评估。
二、教学内容1. Unity3D基础操作与界面布局:讲解Unity3D的安装与启动,介绍编辑器界面、菜单栏、工具栏、场景视图、游戏视图等基本组成部分,使学生熟悉Unity3D的操作环境。
2. 泡泡游戏原理与开发流程:分析泡泡游戏的基本规则、玩法和目标,介绍游戏开发的一般流程,包括策划、设计、编程、测试等环节。
3. Unity3D物理引擎应用:学习Unity3D中的物理引擎,掌握刚体、碰撞器、关节等物理组件的使用,实现泡泡的碰撞和消除效果。
4. C#编程基础:讲解C#语言的基本语法、数据类型、控制结构等,使学生能够编写简单的游戏逻辑代码。
unity期末课程设计一、课程目标知识目标:1. 学生能掌握Unity引擎的基本操作和功能,包括场景搭建、角色控制、物体交互等。
2. 学生能理解并运用Unity中的编程语言C#,实现游戏逻辑和功能开发。
3. 学生能了解Unity中的物理引擎和动画系统,为游戏添加真实的物理效果和生动的人物动作。
技能目标:1. 学生能独立完成Unity项目的搭建和开发,具备基本的游戏设计能力。
2. 学生能运用C#编写脚本,实现游戏中的各种交互和功能。
3. 学生能运用Unity提供的工具和功能,解决游戏开发过程中遇到的问题。
情感态度价值观目标:1. 学生通过课程学习,培养对游戏开发的兴趣和热情,提高创新意识和团队合作能力。
2. 学生在学习过程中,树立正确的游戏观,认识到游戏可以传递积极向上的价值观。
3. 学生在课程实践中,锻炼自己的耐心和毅力,克服困难,不断提高自己的游戏开发能力。
课程性质:本课程为Unity引擎的期末课程设计,旨在帮助学生巩固所学知识,提高实际操作能力。
学生特点:学生已具备一定的Unity基础知识和编程技能,对游戏开发有较高的兴趣。
教学要求:课程要求学生在掌握基础知识的基础上,提高实践能力,注重团队合作和创新意识的培养。
通过课程目标的分解和实施,确保学生达到预期学习成果。
二、教学内容1. Unity引擎基础知识回顾:包括Unity界面和功能介绍、场景搭建、基本组件的使用等。
- 教材章节:第一章至第三章- 内容:Unity界面布局、预制体和脚本的使用、游戏对象和组件的创建与配置。
2. Unity编程语言C#:涵盖C#基本语法、面向对象编程、Unity中的脚本编写技巧。
- 教材章节:第四章至第六章- 内容:变量、数据类型、控制结构、类和对象、继承和接口、事件和委托、Unity脚本生命周期。
3. Unity物理引擎和动画系统:学习物理引擎的基本原理和应用、动画系统的使用。
- 教材章节:第七章至第八章- 内容:刚体、碰撞器、触发器、物理材质、动画控制器、动画状态机。
unity虚拟展厅课程设计一、课程目标知识目标:1. 学生能理解Unity虚拟展厅的基本概念,掌握3D建模、场景布置、光照渲染等基础知识。
2. 学生能掌握Unity虚拟展厅的基本操作,如创建项目、导入资源、搭建场景、添加交互等。
3. 学生能了解虚拟现实技术在各行各业的应用,拓宽知识视野。
技能目标:1. 学生能运用Unity软件搭建一个具有特色的虚拟展厅,展示所学知识。
2. 学生能通过操作Unity虚拟展厅,提高解决问题的能力和团队协作能力。
3. 学生能运用所学的Unity技能,为其他学科项目提供技术支持。
情感态度价值观目标:1. 学生对虚拟现实技术产生浓厚的兴趣,激发学习热情,培养创新意识。
2. 学生在团队协作中,学会尊重他人、沟通协作,培养良好的合作精神。
3. 学生通过虚拟展厅的制作,认识到科技与生活的紧密联系,增强社会责任感。
本课程针对高年级学生,结合Unity虚拟展厅的实用性,注重培养学生的实际操作能力和团队协作能力。
课程目标具体、可衡量,旨在使学生和教师能够清晰地了解课程的预期成果,并为后续的教学设计和评估提供依据。
二、教学内容1. Unity软件基础知识:包括Unity界面、基本操作、脚本编写等,对应教材相关章节,为学生提供扎实的操作基础。
2. 3D建模与场景布置:教授3D建模软件的使用,如Blender或Maya,以及如何在Unity中布置场景、导入模型等,涵盖教材中3D建模及场景设计部分。
3. 灯光与渲染:讲解Unity中的光照系统、阴影效果、渲染设置等,使学生掌握高品质虚拟展厅的制作技巧,对应教材中渲染章节。
4. 交互设计:教授如何在Unity中添加交互元素,如按钮、触发器等,以及脚本编写实现简单交互功能,涉及教材中交互设计相关内容。
5. 虚拟现实技术应用:介绍虚拟现实技术在各行各业的应用案例,帮助学生了解行业动态,拓宽知识视野,对应教材中虚拟现实技术及应用章节。
教学内容安排和进度:第一周:Unity软件基础知识学习,完成基本操作和脚本编写练习。
unity3课程设计一、课程目标知识目标:1. 学生能理解Unity3D的基本概念,掌握场景搭建、物体摆放和基础编程等操作。
2. 学生能掌握Unity3D中的物理引擎和动画系统,运用相关知识制作简单的游戏。
3. 学生了解Unity3D中常用的游戏设计模式,如角色控制、碰撞检测等。
技能目标:1. 学生能独立完成Unity3D场景搭建,合理布局游戏元素。
2. 学生能运用C#语言编写简单的游戏脚本,实现游戏逻辑。
3. 学生能通过Unity3D制作简单的3D游戏,具备基本的游戏开发能力。
情感态度价值观目标:1. 学生培养对游戏开发的兴趣,激发创新思维和动手能力。
2. 学生在团队合作中学会沟通与协作,培养团队精神和责任感。
3. 学生通过游戏开发,认识到科技与生活的紧密联系,增强学以致用的意识。
本课程针对高年级学生,结合Unity3D游戏开发技术,注重实践操作和创新能力培养。
课程目标具体、可衡量,旨在让学生掌握Unity3D基本操作,培养其游戏开发能力,同时注重情感态度价值观的培养,提高学生的综合素质。
后续教学设计和评估将围绕课程目标进行,确保学生达到预期学习成果。
二、教学内容1. Unity3D基础操作与界面认识:包括场景搭建、物体摆放、相机设置等。
- 熟悉Unity3D软件界面和基本功能。
- 学习创建项目和场景,导入资源。
2. C#编程基础:讲解C#语言的基本语法和编程规范,为游戏脚本编写打下基础。
- 变量、数据类型、运算符和表达式。
- 控制结构(条件语句、循环语句)和函数。
3. 游戏物体与物理引擎:学习游戏物体的运动、碰撞检测等物理引擎相关知识。
- 刚体、碰撞器、关节等组件的应用。
- 物理引擎的基本原理和参数设置。
4. 动画系统:了解Unity3D动画系统,学习制作简单的动画。
- Animation组件和Animator Controller的使用。
- 关键帧、动画状态机等概念。
5. 游戏设计模式与实践:学习常用的游戏设计模式,如角色控制、射击、碰撞检测等。
unity地铁跑酷课程设计一、课程目标知识目标:1. 学生能理解Unity平台的基本操作和功能,掌握地铁跑酷游戏的制作流程。
2. 学生能掌握基本的编程知识,如变量、循环和条件语句,并将其应用于游戏开发中。
3. 学生了解地铁跑酷游戏中的物理原理,如重力、碰撞检测等。
技能目标:1. 学生能运用Unity工具创建游戏场景,设计合理的跑道和障碍物。
2. 学生能编写简单的脚本来控制游戏角色,实现跑酷动作和得分系统。
3. 学生能通过调试和优化,使游戏运行流畅,提高游戏体验。
情感态度价值观目标:1. 学生培养对编程和游戏开发的兴趣,激发创新意识和动手能力。
2. 学生在团队合作中学会沟通与协作,培养解决问题的能力和团队精神。
3. 学生通过游戏制作,了解虚拟世界与现实生活的联系,培养正确的价值观。
课程性质:本课程结合了计算机科学、游戏开发和物理知识,以Unity平台为载体,教授学生制作地铁跑酷游戏。
学生特点:六年级学生具备一定的逻辑思维能力和动手操作能力,对游戏有浓厚兴趣,但编程知识有限。
教学要求:课程要求学生在理解基本知识的基础上,动手实践,通过团队合作完成游戏制作。
教师需关注学生个体差异,提供有针对性的指导,确保每个学生都能在课程中取得进步。
课程目标分解为具体学习成果,以便在教学设计和评估中逐一实现。
二、教学内容1. Unity基础知识:介绍Unity平台的基本操作、界面布局和功能,包括场景创建、物体操作和预制体使用等。
- 教材章节:第一章 Unity简介与基本操作- 内容列举:Unity界面布局、场景管理、物体操作、预制体创建与应用2. 编程基础:讲解C#编程语言的基本语法,如变量、数据类型、循环和条件语句等,并应用于Unity游戏开发。
- 教材章节:第二章 C#编程基础- 内容列举:变量与数据类型、运算符、循环与判断、函数与事件3. 游戏场景设计:教授如何使用Unity工具创建游戏场景,设计跑道、障碍物和背景等元素。
unity课程设计心得体会一、课程目标知识目标:使学生掌握Unity游戏引擎的基本操作与功能,理解编程思维在游戏开发中的应用。
具体包括:学会使用Unity界面、掌握基本编程语法、理解游戏物体的组件及属性。
技能目标:培养学生具备独立设计简单游戏场景和编写基本脚本的技能,提高解决问题的能力。
学生能够运用Unity游戏引擎完成一个简单的游戏项目,展示其创意和逻辑思维能力。
情感态度价值观目标:激发学生对编程和游戏开发的兴趣,培养团队协作和创新能力。
学生通过课程学习,增强自信心,形成积极向上的学习态度,认识到编程在现代社会中的重要作用。
课程性质:本课程为实践性较强的学科,注重培养学生的动手操作能力和创新能力。
学生特点:六年级学生具备一定的计算机操作基础,对新事物充满好奇,但注意力集中时间较短,需要结合实际操作和趣味性教学提高学习效果。
教学要求:结合学生特点,课程设计应注重实践操作,以项目驱动教学,让学生在完成项目的过程中掌握知识,提高技能。
同时,注重启发式教学,引导学生主动思考,培养解决问题的能力。
通过小组合作,培养学生团队协作精神,提高沟通能力。
最终,实现课程目标的具体分解,为教学设计和评估提供明确依据。
二、教学内容本课程教学内容紧密围绕课程目标,选取以下内容进行系统教学:1. Unity基础操作与界面认识:包括Unity的安装与启动、界面布局、基本窗口功能介绍等,让学生熟悉Unity操作环境。
2. 游戏物体与组件:学习游戏物体的创建与属性设置,了解组件的作用,如Transform、Renderer、Collider等,掌握游戏物体组件的使用。
3. 编程基础:介绍C#编程语言的基本语法,如变量、数据类型、控制结构等,为编写游戏脚本打下基础。
4. 场景设计与布局:学习如何搭建游戏场景,包括地形编辑、光源设置、摄像机控制等。
5. 简单游戏项目开发:以制作一个简易的2D游戏为例,教授游戏逻辑编写、动画制作、音效添加等。
移动终端游戏开发课程设计说明书题目: Flappy Bird游戏设计院系:专业班级:学号:学生姓名:指导教师:2016年 6 月 30 日安徽理工大学课程设计(论文)任务书学院2016年 4月 1 日安徽理工大学课程设计(论文)成绩评定表目录1 需求分析 (1)2 概要设计 (1)2.1 设计思路 (1)2.2 存储结构设计 (2)2.3 功能模块设计 (3)3 详细设计 (3)3.1 游戏工程视图 (3)3.2 游戏界面布局 (5)3.3 功能模块设计实现 (6)3.3.1游戏开始设计 (6)3.3.2小鸟移动模块设计 (7)3.3.3管道碰撞模块设计 (8)3.3.4场景延续模块设计 (8)3.3.5分数统计模块设计 (8)3.3.6游戏结束模块设计 (9)3.4 其他设计实现 (10)3.4.1 摄像机的跟随 (10)3.4.2 游戏音效的添加 (11)3.4.3 游戏开始界面的设计 (11)4 运行与测试 (12)5 总结 (15)参考文献 (15)1 需求分析1.技术需求:此游戏是在Unity5.3.3上开发出来的,Unity5.3.3可以支持2D、3D场景的编辑,本游戏是基于3D场景开发的。
游戏中的脚本语言使用的是C#,Unity5.3.3中的Monodevelop为脚本编辑提供了平台。
2.功能需求:Flappy Bird是一款益智类的小游戏,其玩法为:游戏开始后,玩家需间歇性的点击鼠标,让小鸟向上飞,不会掉下来,并且要穿过随机出现的管道的间隙,不能碰到管道,碰到就游戏结束,穿过一个管道就可以得到一分。
其制作包括对以下六大功能的需求:(1)当开始游戏后,玩家需要单击指定位置才能开始游戏,否则无法开始;(2)需要通过点击屏幕来控制小鸟的位置,完成使小鸟上下移动的功能;(3)需要对小鸟是否碰到地面或者管道进行判断,从而决定游戏是否结束;(4)需要设置触发器以实现场景的延续,当小鸟碰到触发器,场景中的第一幅背景便挪到最后一幅的后面,从而实现视觉上场景不断出现的效果;(5)需要对玩家进行记分,并对最高分进行判断和存储;(6)在失败后,需要使玩家通过点击按钮重新开始游戏。
2 概要设计2.1 设计思路Flappy Bird 是一款形式简易但难度极高的休闲游戏,我们打算使用unity开发工具来制作这款游戏。
经过分析,我们首先要完成的是对素材的收集,我们可以从网上搜索下载,也可以自己使用PS等工具来画。
其次,我们需要对整个游戏进行模块划分,理清整个游戏是由哪几个模块组成的,经过讨论分析,我们得出这个游戏共需要六大模块。
分析完之后,便进入了正式的游戏制作环节,我们需要对各个模块进行详细设计,其中包括页面布局、碰撞检测、小鸟飞行动画等。
完成各个模块的详细设计后,我们便可以在unity中对它们进行组装和拼接,并运行测试,修改错误和不适当的地方。
自此,整个游戏就设计完成了。
1.Pipe类:管道设计Float pos_y //管道的Y轴值,目的是为了使管道能随机出现2.Bird类:小鸟设计public float timer;//计时器,为了控制显示小鸟飞行动画public int frameNumber;// 一秒的帧数public int frameCount;// 帧计数器3. FollowBird类:摄像机设计private GameObject bird;private Transform birdTransform;//bird的位置4. GameManager类:游戏状态设计public static int GAMESTATE_MENU;//游戏菜单状态public static int GAMESTATE_PLAYING;//游戏中状态public static int GAMESTATE_END; //游戏结束状态public Transform firstBg;//用来记录应该将第一幅场景挪到哪幅场景的后面,以实现场景延续public int score = 0;//记录分数5. MoveTrrigger类:触发器设计Transform currentBg;//用于当前场景的位置Pipe pipe1;//用于新出现的场景中管道1的位置Pipe pipe2;//用于新出现的场景中管道2的位置6. GameMenu类:游戏结束菜单设计public GUIText nowScore;//当前分数public GUIText highScore;//历史最高分public GUITexture startTexture;//开始按钮图片public GUITexture overTexture; //“Game Over”图片7. GameReady类:游戏开始菜单设计public GUITexture readyTexture;//“GetReady”图片public GUITexture TopTexture;//“Tap Tap”图片public static GameReady _intance2;Flappy Bird游戏具有六大功能模块,分别为:(1)游戏开始模块:包括游戏开始菜单的设计;(2)小鸟移动模块:包括对小鸟飞行进行控制的设计;(3)管道碰撞模块:包括管道碰撞和穿过管道即可得分的设计;(4)场景延续模块:包括场景触发器的设计;(5)分数统计模块:包括对玩家分数的统计、显示和在游戏结束时,对玩家的分数进行判断的设计;(6)游戏结束模块:包括游戏结束菜单的设计;其功能模块图如图2-1所示:图2-1 功能模块图3 详细设计3.1 游戏工程视图在新建项目后,我们需要在“Assets”文件夹下导入素材“Audios”:游戏音乐素材文件夹,包括游戏开始音乐、小鸟煽动翅膀的音乐、得分的音乐、撞到管道和地面的音乐、小鸟死亡的音乐;“Textures”:图片素材文件夹,包括:游戏背景、管道、小鸟、游戏菜单等。
“Audios”文件夹如图3-1所示:图3-1 “Audios”文件夹“Textures”文件夹如图3-2所示:图3-2 “Textures”文件夹然后我们需要新建“Materials”:材质文件夹;“Prefabs”:预制文件夹;“Scenes”:游戏场景文件夹;“Scripts”:脚本文件夹。
总体工程视图如图3-3所示:图3-3 总体工程视图3.2 游戏界面布局1.开始界面游戏开始界面如图3-4所示,左上角的“Score”为分数,中间的图画为开始按钮,单击“GetReady”即可开始游戏,右边的管道为小鸟行进途中的障碍,当小鸟碰到障碍,游戏便结束,但当小鸟通过一个障碍即可得一分。
图3-4 开始界面2.结束界面游戏结束界面如图3-5所示,中间的为菜单栏,显示当轮游戏分数和历史最高分,并根据分数来显示所得奖牌的种类,分为金牌、银牌、铜牌,我们可以单击“重新开始”按钮来重新开始游戏。
图3-5 结束界面3.3 功能模块设计实现3.3.1游戏开始设计游戏开始界面与游戏进行界面相似,但一开始没有管道,目的是为了给玩家一个反应的时间。
当程序检测到玩家在游戏界面内点击了鼠标,那么就进入了游戏进行界面。
程序如下:public static int GAMESTATE_MENU =0;public static int GAMESTATE_PLAYING =1;public static int GAMESTATE_END =2;void Update (){if (GameState ==GameManager.GAMESTATE_MENU) {if (Input.GetMouseButtonDown (0)) {GameState = GAMESTATE_PLAYING;bird.SendMessage ("getLife");}}public void getLife(){GetComponent<Rigidbody>().useGravity = true;this.GetComponent<Rigidbody>().velocity = new Vector3(3,0,0);}3.3.2小鸟移动模块设计进入游戏进行界面后,小鸟会显示飞行的动画,在Unity中进行相关参数的设置后,我们需要通过代码来控制小鸟飞行动画,程序如下:if(GameManager._intance.GameState==GameManager.GAMESTATE_PLAYING){ timer += Time.deltaTime;if (timer >= 1.0f / frameNumber) {frameCount++;timer -= 1.0f / frameNumber;int frameIndex = frameCount % 3;this.GetComponent<Renderer>().material.SetTextureOffset ("_MainTex",new Vector2(0.333333f*frameIndex,0));}}我们通过点击鼠标来控制小鸟进行移动,程序如下:if(GameManager._intance.GameState == GameManager.GAMESTATE_PLAYING){ if (Input.GetMouseButton (0)) {//按下左键GetComponent<AudioSource>().Play();Vector3 vel2 = this.GetComponent<Rigidbody> ().velocity;this.GetComponent<Rigidbody>().velocity =new Vector3(vel2.x,4,vel2.z);}}3.3.3管道碰撞模块设计当小鸟碰撞到管道,游戏便结束,此时我们便不能再控制小鸟进行移动,管道碰撞程序如下:void OnCollisionEnter(Collision other){if (other.gameObject.tag == "Player") {hitMusic.Play ();dieMusic.Play ();GameManager._intance.GameState=GameManager.GAMESTATE_EN D;}3.3.4场景延续模块设计当小鸟在飞行过程中,后面的场景应该是不断更新的,我们需要在第三个场景中设置一个触发器,当小鸟碰撞到这个触发器后,我们便把第一个场景挪到最后面,这样我们的场景就能一直不断的更新,程序如下:public void OnTriggerEnter(Collider other){print ("OnTriggerEnter");if(other.tag=="Player"){Transform firstBg = GameManager._intance.firstBg;currentBg.position = new Vector3( firstBg.position.x+10,c urrentBg.position.y,currentBg.position.z);GameManager._intance.firstBg = currentBg;// 管道的新位置pipe1.RandomGeneratePosition();pipe2.RandomGeneratePosition();}}3.3.5分数统计模块设计当小鸟通过管道后,分数便会加1,所以我们需要在管道中间设置一个触发器,并使用代码控制小鸟在碰到触发器后分数能加1,同时显示分数,程序如下:void OnTriggerExit(Collider other){if (other.tag == "Player") {GetComponent<AudioSource>().Play ();GameManager._intance.score++;}}//分数void OnGUI(){bel ("Score:" + GameManager._intance.score);}游戏结束时,将显示本轮分数和历史最高分,代码如下:if (GameState == GameManager.GAMESTATE_END) {GameMenu._intance.gameObject.SetActive (true);GameMenu._intance.UpdateScore (score);}3.3.6游戏结束模块设计当小鸟碰撞到管道或者地面时,游戏便会结束,此时显示游戏结束画面,同时显示本轮分数和历史最高分,并根据分数来显示所得奖牌种类,同时有重新开始按钮,点击即可重新开始游戏,此为无限循环过程。