课程概况
随着互联网和智能手机的快速发展,《Angry Birds》(愤怒的小鸟)、《Temple Run》(神庙逃亡)等手游作品取得巨大成功,让独立开发者赚得第一桶金。移动平台的3D网络游戏开发成为趋势,优秀作品雨后春笋般涌现,Supercell Oy公司开发的《Clash of Clans》(部落冲突)与Blizzard Entertainment公司开发的《Hearth Stone》(炉石传说)风靡全球。网易、腾讯、巨人、恺英网络等业界著名公司也将游戏业务重心转向移动平台,市场涌现出莉莉丝、银汉科技等一大批新锐手游公司。
Unity引擎简单易用、功能丰富、具有跨平台等优秀特性,已成为业界最重要的开发工具。目前,全球大部分独立开发者与游戏工作室都选择Unity游戏引擎作为开发工具,快速开发高品质的手游作品。
《Unity游戏编程基础》课程主要讲述了如何使用Unity引擎开发移动端3D游戏。与课程内容同步,我们设计基于移动平台的第一人称3D射击游戏《慕课英雄》(MOOC HERO)。整个过程分为三个阶段:第一阶段,介绍物理系统、图形系统和音频,用于构建多米诺骨牌的场景;第二阶段,使用Unity的地形系统搭建游戏场景,将第一阶段的多米诺骨牌模型添加到游戏场景中,添加玩家与敌人角色,使用动画系统控制玩家与敌人角色动画的播放,编写Unity脚本实现玩家与敌人的行为和场景中的游戏逻辑;第三阶段,使用uGUI设计游戏交互界面,使用粒子系统与线渲染器实现玩家开枪效果和场景火焰效果,同时制作了场景中收集物以及游戏胜利与失败画面,最终将项目部署到移动平台。
此外,网络开发、人工智能、Shader(着色器)编程等Unity引擎高级功能将在本专项课程有关游戏编程的第二门课中进行学习。
通过本门课程的学习,你将理解Unity引擎的主要功能,学会利用Unity引擎开发移动平台的3D游戏,在入职游戏行业或独立游戏开发道路上迈出重要一步。
课程大纲
周1
完成时间为 2 小时
欢迎
大家好,欢迎学习本门课程,踏上游戏开发之路! 本课程,我们使用Unity游戏引擎学习游戏开发,将开发的游戏部署到PC端和移动终端。本周课程的学习中,我们首先介绍课程的基本信息。接着,我们学习下载、安装Unity编辑器,并对Unity编辑器的界面、操作进行初步了解;最后,我们学习图形、音频等游戏资源的相关知识以及制作获取途径。 如果在概念、测试或是技术细节上遇到困难,可以在讨论区寻求帮助。希望大家融入Coursera学习社区,互相帮助,共同进步。 现在,让我们开始游戏开发之旅!
12 个视频 (总计 60 分钟), 6 个阅读材料, 2 个测验
周2
完成时间为 5 小时
Unity开发基础 — Project 1:多米诺骨牌
大家好,欢迎进入第二周的学习!从本周起,我们将开始本门课程3D手机游戏项目—《慕课英雄》(MOOC HERO)的制作。 在本周,我们学习制作一个《多米诺骨牌》项目。在这个项目中,我们实现的场景效果为:三个颜色不同的圆球从金字塔顶端平台高处滚落,分别推动三排多米诺骨牌接连倒下。 通过这个项目,我们首先学习Unity工程创建、场景构建、资源包导入等基本步骤以及基本游戏对象的创建。接着,我们对Unity的物理系统、图形系统、音频进行初步讲解和运用。最后,我们在PC和移动平台上部署该项目。本周内容涉及一些脚本代码,大家暂时不需理解它们,我们将在第四周的课程中进行讲解。
18 个视频 (总计 131 分钟), 3 个阅读材料, 5 个测验
周3
完成时间为 2 小时
Unity编程语言 — C#编程
大家好,欢迎进入第三周的学习!本周我们将学习 Unity 脚本语言—C#,它是学习 Unity 脚本编程的基础。如果已经具备 C#编程基础,可以直接完成相关测验,进入下一周的学习;如果具备 Java、 C++等面向对象的程序设计语言编程基础,可以快速学习本周内容,熟悉 C#编程语言;如果具备 C、 Pascal 等面向过程的程序设计语言编程基础,也许需要在面向对象的章节花一些精力。通过本周的学习,大家能够了解 C#开发的基础知识,这些知识能够胜任本课程涉及的 Unity 脚本编程。在本周的学习中,我们讲解 C#基本语法(包括变量声明、流程控制、函数定义等)以及面向对象的程序设计(包括类与对象的声明、类的继承、方法重载等)。 我们使用 Unity内嵌的 MonoDevelop 学习编写、运行 C#代码。
12 个视频 (总计 52 分钟), 2 个阅读材料, 3 个测验
周4
完成时间为 6 小时
Unity脚本编程 — Project 2:慕课英雄 MOOC HERO(第三人称射击简易版)
大家好,欢迎进入第四周的学习! 通过本周的学习,我们制作《慕课英雄》(MOOC HERO)第三人称射击游戏的简易版。在这个游戏中,玩家通过键盘控制自己的avatar慕课英雄,躲避僵尸的袭击,射击消灭僵尸,直到玩家生命值为零或者射杀足够数量的僵尸取得胜利。在本周课程中,我们首先回顾《多米诺骨牌》项目中的代码,讲解Unity脚本的编写,包括脚本生命周期以及一些常用的API(应用程序编程接口)。接着,我们学习使用Unity的地形系统构造山地、树木、草地,并将多米诺骨牌模型放置在构造好的地形中。然后,我们在游戏场景中添加玩家和敌人,使用Unity动画系统控制玩家与敌人的动画播放,学习玩家和敌人脚本的编写,实现玩家的移动、攻击、生命值管理以及敌人的追踪、攻击、死亡等功能。最后,我们使用脚本控制游戏的整体进程,包括游戏胜利、失败的判断以及敌人的自动生成等。 本周内容涉及Unity图形用户界面(uGUI)、线渲染器(枪械射线)等知识,大家暂时不需要理解它们,我们将在第五周的课程中进行讲解。
25 个视频 (总计 197 分钟), 3 个阅读材料, 5 个测验
周5
完成时间为 6 小时
Unity高级特性与移动平台开发 — Project 3:慕课英雄 MOOC HERO(第一人称射击完整版)
大家好,欢迎进入最后一周的学习! 在本周的学习中,我们对第四周的游戏进行改进和完善,实现《慕课英雄》(MOOC HERO)第一人称射击游戏的完整版。在本周课程中,我们首先修改人物控制脚本、摄像机跟随脚本,将游戏人称从第三人称更改为第一人称。接着,我们学习使用uGUI制作游戏界面、移动平台的游戏操控和屏幕适配。然后,我们学习利用粒子系统和线渲染器制作玩家开枪效果和场景火焰效果。最后,我们在场景中添加血瓶收集功能、游戏胜利和失败的效果。