新書推薦:
《
教育何用:重估教育的价值
》
售價:NT$
299.0
《
理想城市:环境与诗性
》
售價:NT$
390.0
《
大模型推荐系统:算法原理、代码实战与案例分析
》
售價:NT$
445.0
《
逆风翻盘 危机时代的亿万赢家 在充满危机与风险的世界里,学会与之共舞并找到致富与生存之道
》
售價:NT$
625.0
《
工业互联网导论
》
售價:NT$
445.0
《
木偶的恨意(法国悬念大师米歇尔普西悬疑新作)
》
售價:NT$
295.0
《
孤独传:一种现代情感的历史
》
售價:NT$
390.0
《
家、金钱和孩子
》
售價:NT$
295.0
|
編輯推薦: |
国内第一本专门介绍Unity 2D游戏开发的图书
系统讲解如何利用Unity原有3D功能和新增2D功能两种方式构建2D游戏
详细介绍了3个经典2D游戏项目案例的完整开发过程
遵循游戏开发行业的通用流程,详细介绍了游戏开发中经常遇到的各种常见问题的处理方法,还深入分析了Unity游戏开发的基础知识
将各种游戏开发的基础知识和理论很好地贯穿到了《飞船大战外星人》、《记忆大作战》和《狂怒坦克》三个游戏项目案例中讲解,有很强的实用性
不仅适合初学者快速掌握Unity 2D游戏开发的基本技能,还适合Unity开发人员从3D游戏开发转向2D游戏开发
推荐阅读(请点丛书链接查看)
《Swift游戏开发案例实战》 (详解155个示例、5个游戏项目案例)
《Visual C+游戏开发案例实战》 (游戏开发爱好者入门必读)
《iOS编程实战宝典》 (iOS编程百科全书,全面学习,深入精髓)
《Android经典项目案例开发实战宝典》 (介绍20个Android经典项目案例的开发过程,配视频)
《iPhone开发入门很简单》 (iOS开发社区与CU社区推荐!讲解生动,
|
內容簡介: |
本书是国内第一本专门介绍Unity 2D游戏开发的图书,也是国内唯一一本讲解Unity 2D游戏开发的教程。本书通过对游戏制作过程的详细介绍,帮助Unity开发人员尽快熟悉2D游戏的开发流程和方式。同时,为了照顾游戏开发的初学者,本书还对2D游戏各种理论做了必要描述。
本书共分3篇。第1篇介绍了战机类游戏《飞船大战外星人》的开发,过程较简单,适合作为读者接触并开发的第一个游戏;第2篇介绍了卡片类游戏《记忆大作战》的开发,过程较难,书中也用了较多的篇幅介绍,适合作为读者接触并开发的第一个较复杂的游戏;第3篇介绍了实时策略类游戏《狂怒坦克》的开发,过程较难,适合作为读者了解脚本对于游戏逻辑重要性的第一个游戏。
本书不仅有助于Unity开发者从3D游戏开发转向2D游戏开发,而且还有助于初学者快速掌握Unity 2D游戏开发的基本技能。
战机游戏——飞船大战外星人
Unity及其组成
材质和纹理
着手开发一个简单的2D游戏
卡片游戏——记忆大作战
使用编辑器类自定义编辑器
图片与几何图形对象
生成纹理图集
UV和动画
益于2D游戏的摄像机与场景设置
获取玩家对2D游戏的输入
2D卡片游戏——记忆大作战
可联机玩的游戏——记忆大作战
优化游戏的方法
实时策略类游戏——狂怒坦克
创建一个简单的2D游戏
为游戏精灵添加更多状态
让游戏精灵不再孤单
为游戏添加更多背景元素
终极战斗
让游戏更完善
|
關於作者: |
喻珊 毕业于吉林大学。现任河北农业大学艺术学院的讲师,从事艺术设计专业的教学和科研工作。在国家级和省级专业权威核心期刊上发表过9篇相关论文,任职至今参与了省市级科研课题项目6项,并参与编写专著1部。
张扬 毕业于河北师范大学。现任河北农业大学艺术学院的讲师,从事艺术设计专业的教学和科研工作。对游戏开发的理论有全面和深入的理解,参与过多个Unity 2D3D游戏开发项目,积累了丰富的实践经验。曾经在各类核心期刊上发表过多篇相关论文。
|
目錄:
|
第1篇 战机游戏——飞船大战外星人
第1章 Unity及其组成的介绍
1.1 Unity概述
1.2 项目、资源和场景
1.2.1 项目
1.2.2 资源
1.2.3 场景
1.3 场景视图的操作
1.3.1 使用快捷键操作场景视图
1.3.2 使用Gizmo操作场景视图
1.4 游戏对象和组件
1.5 脚本与脚本编辑器
1.5.1 创建脚本
1.5.2 脚本编辑器
1.6 脚本的调试
1.6.1 调试方法一
1.6.2 调试方法二
第2章 材质和纹理
2.1 材质和纹理的使用
2.1.1 使用材质
2.1.2 不同的材料类型——着色器
2.1.3 使用纹理
2.2 应用于2D游戏的材质
2.2.1 缘由
2.2.2 技巧一:使用白色的环境光
2.2.3 技巧二:使用光不敏感着色器
2.3 纹理使用规则
2.3.1 规则1:分辨率是2的次方
2.3.2 规则2:保证“质量”
2.3.3 规则3:增加阿尔法通道(Alpha Channel)
2.4 导入纹理
2.4.1 导入纹理时默认设置介绍
2.4.2 含有透明信息的纹理
第3章 着手开发一个简单的2D游戏
3.1 开始开发2D游戏
3.1.1 导入纹理资源
3.1.2 新建材质资源
3.1.3 修改场景的环境光及游戏时的屏幕尺寸
3.2 为场景添加游戏对象
3.2.1 调整游戏对象的角度
3.2.2 改变游戏对象的位置
3.2.3 游戏对象的“碰撞”组件
3.3 让飞船动起来
3.4 让飞船发射子弹
3.4.1 在场景中添加子弹
3.4.2 游戏时,让子弹在场景中移动
3.4.3 生成子弹的预设
3.4.4 设置子弹的发射位置
3.4.5 在恰当的时机发射子弹
3.5 让外星飞船动起来
3.5.1 编写脚本
3.5.2 设置外星飞船的触发器
3.5.3 为子弹预设添加刚体组件
3.6 为游戏添加背景
第2篇 卡片游戏——记忆大作战
第4章 使用编辑器类自定义编辑器
4.1 编辑器类
4.2 开始使用编辑器类编写工具
4.2.1 为项目添加脚本
4.2.2 创建指定名称的文件夹
4.3 把工具添加到菜单
4.3.1 CreateWizard函数
4.3.2 测试脚本的实现效果
4.4 读取场景中选择的对象
4.4.1 在脚本中使用Selection类
4.4.2 测试脚本的实现效果
4.5 为工具窗口添加用户输入框
4.6 完成工具的所有功能
第5章 图片与几何图形对象
5.1 2D游戏常用的图片
5.1.1 精灵
5.1.2 图块集
5.1.3 图形绘制中的问题
5.1.4 设想
5.2 开始编写编辑器工具
5.3 设置四边形的轴点
5.4 指定四边形资源的存放路径
5.5 生成四边形
5.5.1 阶段一:创建构成四边形的顶点、UV和三角形
5.5.2 阶段二:在资源面板中生成四边形
5.5.3 阶段三:在场景中实例化一个四边形
5.6 使用四边形生成工具
第6章 生成纹理图集
6.1 为什么要使用纹理图集
6.1.1 降低绘制调用的次数
6.1.2 便于灵活使用纹理
6.1.3 便于管理纹理
6.2 开始编写生成纹理图集的工具
6.3 添加组成纹理图集的纹理
6.4 UV对纹理图集的重要性
6.5 生成纹理图集
6.5.1 步骤一:优化输入的纹理
6.5.2 步骤二:构建纹理图集
6.5.3 步骤三:保存图集的预置
6.6 脚本文件TexturePacker代码汇总
6.7 测试工具的使用效果
第7章 UV和动画
7.1 生成一个可停靠的编辑器
7.2 编辑工具窗口的界面
7.2.1 添加预置资源选择区域
7.2.2 添加纹理选择区域
7.2.3 添加纹理选择的两种方式
7.2.4 编写用于修改网格对象UV坐标的函数
7.2.5 添加应用所有设置的按钮
7.3 工具脚本代码的汇总与使用
7.4 一个播放动画的平面对象
第8章 益于2D游戏的摄像机与场景设置
8.1 摄像机类型:透视与正交
8.2 世界单元与像素
8.3 世界单元与像素的转换
8.3.1 添加纹理和四边形对象
8.3.2 调整四边形与摄像机的位置
8.3.3 世界单元:像素=1:1
8.3.4 对齐屏幕和场景坐标的原点
8.4 纹理图片的完美显示
8.5 其他有用的设置技巧
8.5.1 调节深度
8.5.2 合成视图
第9章 获取玩家对2D游戏的输入
9.1 自动检测鼠标单击事件
9.2 手动检测鼠标单击事件
9.2.1 鼠标按下的键及其位置
9.2.2 鼠标单击的第一个对象
9.2.3 鼠标单击的所有对象
9.3 修改游戏中的鼠标图标
9.3.1 准备所需的资源,并做适当设置
9.3.2 编写脚本
9.3.3 两个坐标系导致的问题
9.3.4 查看游戏视图中的效果
9.4 使用键盘控制鼠标移动
9.5 对游戏输入的抽象——输入轴
9.5.1 了解输入轴
9.5.2 输入轴在输入过程中的应用
9.6 来自移动设备的输入
9.6.1 检测移动设备上的触摸操作
9.6.2 把触摸操作当作鼠标操作
9.6.3 有选择的编译代码
第10章 2D卡片游戏——记忆大作战
10.1 游戏设计的文档
10.2 开始着手创建游戏
10.2.1 在资源面板中创建文件夹
10.2.2 创建一个纹理图集
10.2.3 创建四边形对象
10.2.4 修改四边形的材质和UV
10.2.5 设置摄像机和游戏视图的分辨率
10.3 设置场景中的卡片
10.3.1 设置卡片的属性
10.3.2 定位卡片的位置
10.3.3 编写控制卡片行为的脚本
10.3.4 补全场景中其余的卡片
10.4 游戏管理类
10.4.1 重置卡片
10.4.2 处理玩家输入
10.4.3 响应玩家输入
10.4.4 游戏管理类代码汇总
10.5 完善并运行游戏
10.5.1 替换系统鼠标图标
10.5.2 游戏运行效果展示
第11章 可联机玩的游戏——记忆大作战
11.1 网络连接
11.2 建立服务器端
11.3 建立客户端
11.4 测试网络连接的功能
11.5 网络视图组件
11.6 构建授权服务器
11.7 建立游戏输入操作的秩序
11.7.1 游戏启动时,禁止输入操作
11.7.2 连接建立后,允许服务器端的输入操作
11.7.3 服务器端远程调用客户端上的函数
11.7.4 客户端远程调用服务器端上的函数
11.8 修改游戏管理类脚本
11.9 游戏运行效果展示
11.10 为游戏添加分数记录
第12章 优化游戏的方法
12.1 最优化,如你所想吗
12.2 减少顶点的数目
12.3 减少材质
12.4 减少UV接缝
12.5 不同平台下,纹理的不同设置
12.6 对象缓存组件
12.7 避免频繁使用Update函数
12.8 合理使用Collider组件
12.9 避免使用OnGUI和GUI类
12.10 使用静态批处理
12.11 使用天空盒子
第3篇 实时策略类游戏——狂怒坦克
第13章 创建一个简单的2D游戏
13.1 地面
13.2 游戏精灵
13.3 精灵动画
13.3.1 Animation
13.3.2 Animator
13.4 使用脚本实现游戏逻辑
13.4.1 精灵动画状态的控制
13.4.2 监听精灵当前的动画状态
13.5 2D游戏的运行效果
第14章 为游戏精灵添加更多状态
14.1 摄像头追踪功能
14.2 精灵的死亡和重生
14.3 添加多个地面
14.4 精灵的跳跃状态
14.5 精灵的开火状态
第15章 让游戏精灵不再孤单
15.1 为游戏添加反派角色
15.2 精灵与反派角色碰撞后死亡
15.3 精灵主动攻击反派角色
15.4 添加反派角色销毁时的效果
15.5 添加多个反派角色到游戏中
第16章 为游戏添加更多背景元素
16.1 为游戏场景补充更多元素
16.1.1 限制精灵的移动范围
16.1.2 添加背景元素
16.1.3 让背景元素动起来
16.1.4 让粒子效果显示在前面
16.2 记录分数
16.3 动态生成更多的敌人
第17章 终极战斗
17.1 引入究极敌人
17.2 究极敌人的行为逻辑
17.3 让究极敌人的出场更威风些
17.4 究极敌人的攻击方式
17.5 玩家精灵的反击
第18章 让游戏更完善
18.1 游戏关卡
18.2 游戏标题及开始按钮
18.2.1 导入标题和按钮资源
18.2.2 表示游戏状态的类
18.2.3 单击开始按钮,进入游戏
18.2.4 游戏最终运行效果展示
|
|