编辑推荐
从初学者入门角度讲解Unity游戏开发
让读者快速学会如何使用Unity制作3D游戏
以两种语言去讲解游戏脚本的编写
入门阶段我们使用JavaScript语言介绍,进阶阶段使用C#语言
每章都含有丰富的游戏实例与源代码
最后一章以一个第1人称射击类3D游戏为实例充分介绍游戏实战开发过程
内容简介
《Unity3D游戏开发》通过实例详细介绍了如何使用Unity 进行游戏开发,书中先简要介绍了Unity 环境搭建、编辑器和GUI 游戏界面相关的知识,接着介绍了如何使用C# 和JavaScript 构建游戏脚本,添加树、草、石头等模型以及键盘事件、鼠标事件和3D 模型动画相关的内容,然后介绍了持久化数据、音频与视频播放等内容,最后以一款第1人称射击类游戏为原型,向读者详细介绍游戏制作的整个过程。
本书适合具备一些JavaScript 与C# 语言基础,并且想快速入门Unity 3D 游戏开发的人员阅读。
作者简介
宣雨松,网名雨松MOMO。首款入驻美国苹果店数字体育产品GolfSense Unity3D主程,CSDN博客专家,51CTO博客之星,51CTO移动开发论坛版主,Unity圣典开发论坛版主,5年以上移动游戏与软件开发经验。曾经领导与参与的游戏项目包括:GolfSense、新少林寺、天降少女、游龙戏凤西门庆等。
内页插图
精彩书评
如今移动平台iOS、Android、Windows Phone 7智能手机的迅速崛起,让整个游戏行业的竞争愈演愈烈。在各个游戏平台相互竞争的同时,Unity跨平台游戏引擎出现在了我们面前,跨平台将会开启下一代游戏开发的模式,本书基于Unity 3.5编写,通过丰富的游戏实例,以JavaScript与C#这两种语言介绍Unity开发。对于入门Unity开发的读者,这本书是极好的参考资料,强烈推荐!
——Unity圣典
Unity 3D跨平台游戏引擎以迅雷不及掩耳之势出现在我们面前,横跨9种主流游平台,具有出色的物理引擎以及3D渲染效果。当你在Unity开发门外徘徊时,本书绝对值得你阅读。此外,每章最后都有一个游戏示例引导你快速上手Unity开发。
——51CTO产品部副经理老友
与其他游戏引擎相比,Unity显而易见的特点就是,一次开发即可轻松部署到Windows、Mac、iOS、Android、Wii、PS3等平台,告别以往高难度的、耗时的跨平台游戏开发,使快速、高质量的游戏开发成为可能。本书详尽介绍了Unity的安装、使用及深入开发等,并通过相应的实例来巩固知识点,是快速入门及提高Unity技术的必备书。愿本书能给我们大家带来越来越多由Unity开发的优秀游戏!
——Unity资深用户四角钱
目录
第1章 基础知识
1.1 Unity简介
1.2 下载与安装
1.3 游戏界面对比
1.4 购买许可证
1.5 打包与发布
1.6 本章小结
第2章 编辑器的结构
2.1 游戏工程
2.1.1 创建工程
2.1.2 打开工程
2.2 Project视图
2.3 Hierarchy视图
2.4 Inspector视图
2.4.1 简介
2.4.2 平台设定
2.5 Scene视图
2.5.1 视图介绍
2.5.2 移动视图
2.5.3 场景工具
2.5.4 Scene视图控制条
2.6 Game视图
2.6.1 运行游戏
2.6.2 Game视图控制条
2.6.3 导出与导入
2.7 第一个游戏实例(拓展训练)
2.8 本章小结
第3章 GUI游戏界面
3.1 GUI高级控件
3.1.1 Label控件
3.1.2 Button控件
3.1.3 TextField控件
3.1.4 ToolBar控件
3.1.5 Slider控件
3.1.6 ScrollView控件
3.1.7 群组视图
3.1.8 窗口
3.1.9 GUI Skin
3.1.10 自定义风格组件
3.2 GUILayout游戏界面布局
3.2.1 GUI与GUILayout的区别
3.2.2 GUILayoutOption界面布局设置
3.2.3 线性布局
3.2.4 控件偏移
3.2.5 对齐方式
3.2.6 实例--添加与关闭窗口
3.2.7 设置字体
3.2.8 显示中文
3.3 2D贴图与帧动画
3.3.1 绘制贴图
3.3.2 绘制动画
3.3.3 实例--人物移动
3.3.4 实例--用Unity开发2D游戏
3.4 游戏实例--游戏主菜单
3.5 本章小结
第4章 Unity游戏脚本
4.1 MonoDevelop脚本编辑器
4.1.1 编辑器简介
4.1.2 调试
4.2 Unity脚本的生命周期
4.3 利用脚本来操作游戏对象
4.3.1 创建游戏对象
4.3.2 获取游戏对象
4.3.3 添加组件与修改组件
4.3.4 发送广播与消息
4.3.5 克隆游戏对象
4.3.6 脚本组件
4.4 用脚本来控制对象的变换
4.4.1 改变游戏对象的位置
4.4.2 旋转游戏对象
4.4.3 平移游戏对象
4.4.4 缩放游戏对象
4.5 用C#编写脚本
4.5.1 继承MonoBehaviour类
4.5.2 声明变量
4.5.3 调用方法
4.5.4 JavaScript与C#脚本之间的通信
4.6 工具类
4.6.1 时间
4.6.2 等待
4.6.3 随机数
4.6.4 数学
4.6.5 四元数
4.7 游戏实例--小地图的制作
4.8 本章小结
第5章 游戏元素
5.1 游戏地形
5.1.1 创建地形
5.1.2 地形参数
5.1.3 编辑地形
5.1.4 地形贴图
5.2 地形元素
5.2.1 树元素
5.2.2 草与网格元素
5.2.3 其他设置
5.3 光源
5.3.1 点光源(Point Light)
5.3.2 聚光灯
5.3.3 平行光
5.4 天空盒子
5.4.1 Skybox组件
5.4.2 在场景中添加天空盒子
5.5 常用编辑器组件
5.5.1 摄像机
5.5.2 摄像机的类型
5.5.3 定制导航菜单栏
5.5.4 预设
5.5.5 抗锯齿
5.6 游戏实例--摄像机切换镜头
5.7 本章小结
第6章 物理引擎
6.1 刚体
6.1.1 简单使用
6.1.2 物理管理器
6.1.3 力
6.1.4 碰撞与休眠
6.2 碰撞器
6.2.1 添加碰撞器
6.2.2 物理材质
6.3 角色控制器
6.3.1 第一人称
6.3.2 第三人称
6.3.3 控制组件
6.3.4 移动与飞行
6.3.5 碰撞监测
6.4 射线
6.4.1 射线的原理
6.4.2 碰撞监测
6.5 关节
6.5.1 关节介绍
6.5.2 实例--关节组件
6.6 粒子特效
6.6.1 粒子发射器
6.6.2 粒子动画
6.6.3 粒子渲染器
6.6.4 粒子效果实例
6.6.5 布料
6.6.6 路径渲染
6.7 游戏实例--击垮围墙
6.8 本章小结
第7章 输入与控制
7.1 键盘事件
7.1.1 按下事件
7.1.2 抬起事件
7.1.3 长按事件
7.1.4 任意键事件
7.1.5 实例--组合按键
7.2 鼠标事件
7.2.1 按下事件
7.2.2 抬起事件
7.2.3 长按事件
7.3 自定义按键事件
7.3.1 输入管理器
7.3.2 按键事件
7.3.3 按键轴
7.3.4 实例--观察模型
7.4 模型与动画
7.4.1 模型的载入
7.4.2 设置3D动画
7.4.3 播放3D动画
7.4.4 动画剪辑
7.4.5 动画的帧
7.5 GL图像库
7.5.1 绘制线
7.5.2 实例--绘制曲线
7.5.3 绘制四边形
7.5.4 绘制三角形
7.5.5 绘制3D几何图形
7.5.6 线渲染器
7.5.7 网格渲染
7.6 游戏实例--控制人物移动
7.7 本章小结
第8章 持久化数据
8.1 PlayerPrefs类
8.1.1 保存与读取数据
8.1.2 删除数据
8.1.3 实例--注册界面
8.2 自定义文件
8.2.1 文件的创建与写入
8.2.2 文件的读取
8.2.3 实例--读取笑话
8.3 应用程序
8.3.1 创建关卡
8.3.2 切换关卡
8.3.3 截屏
8.3.4 打开网页
8.3.5 退出游戏
8.4 资源数据库
8.4.1 加载资源
8.4.2 创建资源
8.4.3 创建文件夹
8.4.4 移动与复制
8.4.5 删除与刷新
8.4.6 实例--鼠标拖动模型
8.4.7 实例--鼠标拣选
8.5 游戏实例--接受任务
8.6 本章小结
第9章 多媒体与网络
9.1 游戏音频
9.1.1 音频介绍
9.1.2 添加音频
9.1.3 播放音频
9.2 游戏视频
9.2.1 创建视频
9.2.2 播放视频
9.2.3 GUI播放视频
9.3 网络
9.3.1 下载文件
9.3.2 自定义资源包
9.3.3 下载资源包
9.3.4 创建本地服务器
9.3.5 客户端连接服务器
9.3.6 实例--多人聊天服务器端
9.3.7 实例--多人聊天客户端
9.4 游戏实例--简单的网络游戏
9.5 本章小结
第10章 游戏实例--突出重围
10.1 游戏状态机
10.2 游戏界面
10.2.1 游戏主菜单
10.2.2 制作角色血条
10.2.3 制作图片数字
10.3 游戏逻辑
10.3.1 发射子弹与击打目标
10.3.2 敌人的AI
10.3.3 增加敌人预设
10.4 完整的游戏
10.5 本章小结
精彩书摘
基础知识
Unity是一款3D跨平台次世代游戏引擎,“Unity”一词的中文解释为“团结”,好比集合所有人的力量一起来完成一件伟大的巨作一般,这款游戏引擎以其强大的跨平台特性与绚丽的3D渲染效果而闻名出众。该款游戏引擎的开发商是大名鼎鼎的Unity Technologies,近年来该公司处于飞速发展当中。起初Unity的版本为1.0.0,它只可部署在Mac OS下并且只能制作iPhone中的游戏。随着它不断发展与壮大,目前Unity的版本已经升级至3.5,可同时部署在Mac OS与Windows两种操作系统之上,横跨的主流游戏平台高达9种。而且其3D渲染效果也得到了大幅度提升。
目前全球的Unity注册用户已经超过6000万,国内首款Unity 3D PC网游《将魂》已震撼面市,开启了网络游戏的新纪元。此外,大量的Unity 3D网页游戏也涌现在我们的视线当中。在移动方面,苹果的App Store中有1500多款游戏是使用Unity进行开发的,Android平台中也有不少Unity制作的优秀游戏。总之,Unity近几年的蓬勃发展已经让它在游戏业内站稳脚跟,让越来越多的好游戏脱颖而出。未来,Unity还会融合更多炫酷的功能并且横跨更多的游戏平台,请大家拭目以待。
1.1 Unity简介
Unity是一款标准的商业游戏引擎,而商业引擎的主要特点有收费、封闭源码和功能强大。
关于收费情况,Unity的使用费用非常昂贵,最便宜的普通版许可证也需要400美元,加强版本为1500美元。当然许可证的版本不同,引擎支持的功能也就截然不同。具有加强版许可证的引擎的很多强大功能是有普通版许可证的引擎所不具备的。但是从学习的角度来说,无须购买许可证同样可以进行,因为许可证更大的用处在于游戏制作完成后的打包与发布,不购买许可证制作的游戏是无法发售的,不过,单就学习而言,我们完全无须购买许可证,选择免费的Unity即可。
游戏引擎的开源与闭源是两种主要的趋势,它们之间各有利弊。如果采取开源形式,那么为了学习与钻研引擎,使用人数肯定会大幅度提高,缺点是因为已经将源代码赤裸裸地发放,所以第三方对源码加以修改,容易造成不劳而获的情况。而封闭源码则可以让引擎更加安全,并且有效地保护引擎的知识产权。Unity就是采取完全封闭源码的形式。
Unity引擎的功能非常强大,其中一个显著特点就是跨平台游戏开发。跨平台开发无疑为开发者节省了大量时间。平台之间的差异会直接影响到开发进度,比如屏幕尺寸、操作方式、硬件条件等的不同会给开发者造成巨大的麻烦,因为在不同的平台中开发者需要花更多时间去做平台之间的移植开发,而将大量时间浪费在这上面并不值得。Unity几乎为开发者完美地解决了这一难题,将大幅度减少移植过程中一些不必要的麻烦,但使用它后也并非一点麻烦都不会产生。因为各平台的硬件条件是不同的,比如PC的硬件条件肯定会强于移动平台,所以开发者还需要针对不同的平台做一番取舍。
介绍完Unity的主要特点后,下面简要介绍一下开发环境。Unity可部署在Mac OS或Windows操作系统中,在这两种操作系统中,除了客户端操作习惯与界面有些差异以外,引擎自身的功能没有任何区别。学习Unity之前,请读者选择适合自己的操作系统。
1.2 下载与安装
在撰写本书之时,Unity官方的最新版本为Unity 3.5,所以书中将主要以Unity3.5进行讲解。后续如果Unity版本进行了升级,读者亦可在Unity官网下载最新版本并结合本书进行学习。因为Unity支持向下兼容,所以在新版本中同样可以运行书中的所有游戏例子,这点请读者放心。
首先我们登录Unity官网的下载地址开始下载Unity 3.5的安装包。打开Unity官方下载网页(如图1-1所示)后,点击右侧的Download Unity 3.5按钮,开始下载Unity的程序安装包。下载时,官网会检测下载此安装包所使用的操作系统从而进入对应的下载页面,比如读者使用Mac OS操作系统,下载Unity时下载页面就是Mac OS版本,使用Windows操作系统时,下载Unity时下载页面就是Windows版本。当然,也可自行选择下载的Unity程序包,在图中右下方点击“ Developing on Windows”链接可切换到Windows版本的下载页面,点击“Developing on Mac OS X”链接可切换到Mac OS版本的下载页面。
如图1-1所示,在Download Unity 3.5按钮下方,还有3个比较重要的链接,其含义如下所示。
System Requirements:系统需求,开发环境的硬件需求。
License Comparison:许可证对比,许可证版本之间的区别。
Release Notes:版本发布说明,这里包含Unity所有历史版本的发布说明以及它们的下载地址。
图1-1 Unity下载页面
目前Unity支持在Mac OS与Windows两种操作系统下编写游戏,本节我们将向读者详细介绍如何在这两种操作系统下搭建Unity开发环境。下面我们先介绍如何在Mac OS中搭建Unity开发环境。
1. 在Mac OS下安装Unity
下载完毕后,可以看到Unity 3.5的安装包,双击它后即可进行Unity的安装。这里需要说明的是,在首次安装Unity时需要联网注册,只有注册成功后才可以使用Unity。启动Unity 3.5安装包后,程序将弹出Unity的注册向导界面,如图1-2所示。
图1-2 注册向导界面
在页面下方点击”Register“按钮后,此时将进入Unity激活界面,如图1-3所示。在激活界面中,首先需要选择激活方式。激活方式有联网激活(Internet activation)与手动激活(Manual activation)两种。联网激活适用于未购买Unity许可证的用户,而手动激活适用于已购买许可证的用户,这里我们选择”Internet activation“进行联网激活。
图1-3 Unity激活页面
点击”Next“按钮,程序会自动帮我们打开Unity联网激活的页面,如图1-4所示。为了完成激活,读者需要按照提示正确填写注册的相关信息,它们包括开发者邮箱与公司地址。内容填写完毕后,直接点击”Free“按钮免费激活Unity。
这里需要说明一下,Unity的试用期只有30天。我们知道Unity的许可证可分为普通版与加强版两种,普通版本只具备Unity的基本功能,而加强版本更为强大,比如增强了3D特效、特殊的光影效果、3D渲染特效等。然而30天的使用期限是针对于加强版本的,30天后将无法继续免费使用加强版本中的功能,需要缴费购买许可证,但是普通版本的功能仍然可以继续使用。关于普通版本与加强版本两者的详细区别,读者可点击”License Comparison“按钮进行查看。
图1-4 联网激活页面
点击”Free“按钮后,程序将打开注册完成界面,如图1-5所示,这表示Unity的 Mac OS版本已经彻底在本机中注册完毕,然后在界面中点击下方的”Finish“按钮,开始我们Unity学习之旅。
图1-5 注册完成
需要说明的是,Unity注册向导只会在本机第一次安装Unity时出现,注册完毕即表示安装成功。后续如果读者需要覆盖安装或者升级,只需打开Unity程序安装包,根据提示点击下一步即可。
2. 在Windows下安装Unity
在Windows下安装Unity与在Mac OS下安装有细微的差别。首先下载Unity 3.5 Windows版本,然后打开它开始安装。
在Windows中首次安装Unity同样需要注册,由于注册方法与Mac OS完全
Unity 3D游戏开发 下载 mobi epub pdf txt 电子书 格式