新書推薦:
《
MATLAB实用教程(第六版)
》
售價:NT$
695.0
《
中国思想的再发现(壹卷:近观系列,沟口雄三教授以其精湛的学术洞察力,旨在呈现一个全面而立体的中国思想图景)
》
售價:NT$
325.0
《
图以载道——传统绘画的图像叙事
》
售價:NT$
390.0
《
骨科康复学(第2版)
》
售價:NT$
1140.0
《
笔记启蒙 : 英国皇家学会与科学革命
》
售價:NT$
390.0
《
汉语副词研究论集(第六辑)
》
售價:NT$
490.0
《
干戈之影:商代的战争观念、武装者与武器装备
》
售價:NT$
340.0
《
镶嵌之美:古希腊罗马的马赛克艺术
》
售價:NT$
1390.0
|
編輯推薦: |
★这是一本从实战项目总结出来的好书
★从数学及Shader出发为大家揭露开发的机密
★在架构的角度上介绍了游戏的UI模块、IO模块、Sound模块、Net模块等
★在游戏制作的角度上讲了UI的制作、角色的加载及使用、场景的制作(地形、树木、水、阴影等)、粒子和物理系统的使用
★让读者接触到一个真正的商业项目中遇到的一些难题和解决方案
★本书作者从业15年,本书是其多年一线开发经验和实际运用技术分享
|
內容簡介: |
《Unity 3D实战核心技术详解》详细介绍了实际游戏开发中使用的核心技术,每一章都结合了游戏开发的实战案例。首先,介绍了3D数学在Unity中的运用,3D数学知识包括:Unity坐标系统、向量、矩阵、四元数、欧拉角等基础知识。其次,介绍了游戏开发中常用的核心技术:Avatar换装系统、消息事件系统、Protobuf在游戏中的运用,以及游戏中的文本文件加密算法等。再次,介绍了游戏中的AI行为树算法、残影算法、移动端实时阴影绘制、移动端海水的绘制等技术。然后,在游戏架构设计方面,介绍了*经典的针对UI的MVC架构设计和对于角色动作和技能的FSM有限状态机架构,以及游戏版本迭代使用的热更新技术方案。*后,介绍了移动端GPU编程和游戏开发的一些经验。《Unity 3D实战核心技术详解》适合具备一定Unity开发经验的初学者和有一定Unity项目开发经验的游戏开发者阅读。
|
關於作者: |
姜雪伟
创业公司技术合伙人,从事IT行业15年,主导或参与了18款大型游戏的研发;
曾在网龙、久游、趣游等知名IT公司担任核心技术团队负责人;
在泰课和CSDN学院等在线教育网担任高级讲师,CSDN社区专家;
研究方向为客户端架构、3D引擎架构、图形学算法、GPU编程等,目前负责公司3D引擎的研发工作;
工作之余,喜欢用书籍记录自己多年的技术积淀。
|
目錄:
|
推荐序
推荐语
前言
第1章3D数学与UNITY
1.1Unity坐标系
1.2向量
1.2.1向量的加法
1.2.2向量的减法
1.2.3向量点乘
1.2.4向量叉乘
1.3矩阵
1.3.1平移矩阵
1.3.2矩阵缩放
1.3.3矩阵旋转
1.4四元数
1.5欧拉角
1.6小结
第2章AVATAR换装系统
2.1换装原理
2.2换装代码实现
2.3小结
第3章消息事件封装
3.1消息类型定义和封装
3.2消息事件的监听与分发
3.3小结
第4章PROTOBUF在游戏中运用
4.1Protobuf消息结构体定义
4.2编写Protobuf结构体
4.3Protobuf转换工具制作
4.4Protobuf文件在Unity中的运用
4.5小结
第5章游戏中的文本文件加密
5.1配置文件格式
5.2文件加载接口
5.3文本文件加密算法及应用
5.4小结
第6章行为树在游戏中的运用
6.1行为树插件介绍
6.2案例讲解
6.3小结
第7章残影
7.1残影的技术实现
7.2Demo展示
7.3小结
第8章移动端实时阴影绘制
8.1移动端实时阴影实现原理
8.2技术实现
8.3透明材质实时阴影处理
8.4小结
第9章移动端海水仿真技术
9.1海水实现的技术原理
9.2海水网格
9.3海水算法
9.4海水的技术实现
9.5海水浮力的实现
9.6海面风力实现
9.7操作界面
9.8海水的渲染
9.9海水案例分享
9.10小结
第10章MVC架构设计
10.1MVC代码模块设计
10.2事件代码实现案例
10.3窗体基类的实现案例
10.4窗体子类代码实现案例
10.5控制类实现案例
10.6状态类设计实现
10.7窗体管理类实现案例
10.8MVC案例分享
10.9小结
第11章FSM有限状态机在游戏中的运用
11.1FSM基类设计
11.2子类设计
11.3实体类设计
11.4技能子类
11.5游戏案例分享
11.6小结
第12章移动端热更新技术实现
12.1热更新架构设计
12.2资源打包工具的开发
12.3C#与Lua接口相互结合
12.4模块化接口实现
12.5Lua脚本逻辑编写
12.6案例实现
12.7小结
第13章移动端SHADER技术
13.1可编程流水线
13.2顶点着色器
13.3片段着色器
13.4Shader案例分享
13.5小结
第14章游戏开发经验分享
14.1关于调试经验分享
14.2移动端游戏防破解技术
14.3减小包体的大小
14.4动态对象资源的优化
14.5多线程资源下载技术
14.6小结
|
內容試閱:
|
推 荐 序
Unity跨平台引擎这几年在国内的发展势头非常迅猛,截至目前已经横跨27个主流游戏平台,尤其是在手游开发领域发展势头尤为凸显。大量的中小型公司几乎都使用Unity开发游戏。所以在App Store和Android Market上有大量用Unity开发的优质游戏或应用。开发者青睐Unity主要有两个方面原因,一方面是Unity很方便就能跨平台,另一方面是Unity上手快,但是在我看来它受欢迎最主要的原因是上手快。
跨平台。Unity能一键发布在27个平台上,但是每个平台的特性是不同的,甚至可以说完全不一样。比如代码层面,接入移动SDK,不是所有厂商都能提供Unity的SDK接口。一些平台特定的API,Unity可能没有提供,或者说还没来得及提供,在这些复杂情况下我们只能通过原生方法去调用它。此外,硬件层面内存CPU性能的不同,操作层面触屏、手柄、PC实体按键也都不同,游戏玩法从设计上不可能都一样,所以真正的跨平台并不是随随便便打个包就能完事的。
上手快。Unity 底层全部使用 CC与 OpenGL ES 3D 渲染引擎交互,C#端封装了UnityEditor.DLL和UnityEngine.DLL,通过与Unity内部CC代码交互从而与底层代码相互调用。从开发层面看,开发者不用考虑怎么实现复杂的图形学、3D数学算法,甚至完全不懂OpenGL ES 的同学也能用 Unity 开发游戏。因为一切复杂的东西 Unity 在底层都封装好了,开发者只需要编写C#代码访问Unity提供的UnityEditor.DLL及其提供的API接口即可从容地开发3D游戏。听起来是不是很酷炫呢?可是Unity依然存在很多隐患。
目前看来Unity确实很强大,能做的东西确实很多。但是它却有点臃肿了。做过Unity手游开发的人应该都知道,Unity的效率并不高。在UI层面,无论是NGUI,还是UGUI,界面元素稍微多一点打开界面的时候就会出现卡顿。在3D层面,同屏人数多一点或者Shader复杂一些,帧率马上就掉下去了。Unity引擎大而全,它为了各个平台的兼容性,性能问题必然会显现出来,因为没办法对某个游戏平台做针对性的优化,加上Unity没有开放源码,开发者更多时候只能靠猜,所以有些更大的公司会使用自研引擎。
关于热更新,我觉得它更多是用来修正游戏Bug的。如果没有热更新,修改一个Bug后需要重新提交App Store评审,这样来来回回可能要耽误好几天时间,不是很合理。由于苹果禁止了JIT,Unity官方没有提供热更新的方案,因此我们都采用Lua进行热更新的开发。虽然Lua的解释器可以用C代码解释,但是在处理Lua与C#之间穿透的时候依然会很慢,程序设计不合理就会产生性能问题。
所以Unity最大的痛点就是性能问题,它上手确实很快,但是想学好却是一件很难的事情。脚本开发非常地灵活,但是太灵活就可能会被滥用。现在的互联网上已经充满了各式各样的Unity教程,但是大多数都比较零散,我们太需要一本从实战项目总结出来的好书。姜雪伟的这本新书,从数学以及Shader层面出发,通过实战项目经验的分享以及框架层面的剖析为大家揭露开发的机密,不可不读。
宣雨松MOMO
资深Unity 3D开发者
前言
在IT行业中游戏程序员的薪资相对于其他领域来说还是比较高的,这也导致了许许多多的软件开发者转入游戏行业,从事Unity 3D游戏开发。Unity引擎因为具有上手快并且能跨平台开发的优点,被众多开发者所喜爱。虽然游戏研发公司对开发人员的需求越来越大,但是初次踏入游戏行业的开发者由于游戏产品项目经验不足,并不被游戏公司所认可。我在泰课在线教育做讲座时发现,有的学员水平还是不错的,但由于他们在游戏行业的工作经验不足,最终很难被游戏公司录用。如今,政府和公司支持的各种创客空间的兴起,为开发者提供了非常好的硬件条件,极大地促进了IT行业的繁荣发展,特别是游戏和软件开发的发展。
但是游戏行业也是一种技术浓缩型行业,作为一名从业者,要想在这个行业生存和发展,没有过硬的技术是不行的。可是,多年的从业经历让我见到许许多多的年轻人,他们在公司里只能写一些简单的逻辑,长期被边缘化,随时都有被辞退的危险。究其原因,还是他们缺乏解决实际问题的经验,在公司的产品开发中无法提供价值。在和他们接触的过程中,我发现了一个很严重的问题:这些能力欠佳的年轻人也有强烈的欲望去学习专业知识,但是市场上的Unity书籍讲述的都是一些入门的基础知识,已经远远不能满足手游开发工作的需要,他们急需能够与实际开发相结合并且能够帮助他们解决实际问题的书籍。作为他们的前辈,我也有过相似的经历,花费了很多时间去摸索,我一直在思考如何才能让后来者少走弯路。经过多年的经验积累,我终于奉上了这本呕心沥血之作。本书讲述的所有知识点都是与实际开发密切相关的,很多代码可以直接拿过来运用到项目中,实用性超强!
本书致力于用最通俗的语言讲述初学者最需要的知识。在写作形式上,本书采用图文并茂的方式,让读者更容易掌握知识,为开发能力的提升提供了巨大的帮助。在技术知识的安排上,本书并没有把核心技术一一讲解,而是选择了一些游戏开发中经常使用的技术。
本书的编写不同于只写对Unity编辑器的一些基本操作的书籍。本书重点讲解游戏开发中实际运用的技术,分享游戏开发经验,阅读完本书,游戏开发者在技术方面和开发经验方面都会有一个质的提升。本书并不是介绍一个游戏是如何制作的,而是介绍游戏开发中的各个核心技术点。因为对于现在的游戏公司来说,核心技术只掌握在少数几个人手里,其他人很难接触到,他们或者是在已有框架的基础上开发,或者是使用已经封装好的技术模块开发。这样对于开发者技术的提升是非常不利的,也不利于增长实际项目开发经验。本书的宗旨就是把游戏中使用的核心技术无偿奉献给开发者,让开发者在最短的时间内提高自己的技能。
姜雪伟
2016年10月
|
|