前言
第1章Unity 3D AR应用开发基础 1
1.1 Unity 3D引擎简介 1
1.1.1Unity 3D的下载与安装 1
1.1.2Unity 3D操作界面简介 6
1.1.3Unity 3D的基础组件与操作 7
1.1.4Unity 3D的资源商店 14
1.2Unity 3D编程基础 14
1.2.1C#编程基础 14
1.2.2C#面向对象编程基础 24
1.2.3C#面向对象编程进阶 26
1.2.4Unity 3D中的C#脚本 30
1.3Unity 3D编程进阶 32
1.3.1Unity 3D的设计模式 32
1.3.2MonoBehavior的生命周期 33
1.3.3控制GameObject的位置 37
1.3.4控制GameObject的生成和销毁 40
1.3.5处理Unity 3D中的物体碰撞 43
1.3.6UI组件的使用 45
1.4AR中常用的Unity 3D插件 49
1.4.1视频播放插件:Easy Movie Texture 50
1.4.2动画控制插件:iTween 53
1.4.3手势控制插件:Easy Touch 57
第2章使用Vuforia开发AR应用 60
2.1Vuforia SDK简介 60
2.1.1Vuforia SDK的下载与安装 60
2.1.2创建App License Key 62
2.1.3在SDK中输入App License Key 63
2.2使用Vuforia SDK进行物体识别 64
2.2.1图片识别 64
2.2.2长方体识别 70
2.2.3圆柱体识别 73
2.2.4物体识别 76
2.3使用Vuforia SDK制作AR视频 80
2.3.1上传识别图 80
2.3.2创建识别视频播放GameObject 80
2.3.3创建识别图目标 83
2.3.4编译运行程序 85
2.4制作AR对战游戏 87
2.4.1制作识别图 87
2.4.2创建子弹 87
2.4.3 创建玩家角色 90
2.4.4创建敌人 102
2.4.5将玩家和角色设定为Image Target 104
第3章AR应用中的拓展功能实现 110
3.1在Unity 3D中实现网络通信 110
3.1.1计算机网络简介 110
3.1.2搭建一个HTTP服务器 111
3.1.3使用WWW从HTTP服务器获取图片 112
3.2在Unity 3D中获取天气信息 115
3.2.1通过网络API获取天气数据 115
3.2.2使用GZipStream解压缩字符数组 116
3.2.3在Unity中反序列化JSON数据 117
3.3在Unity 3D中获取GPS信息 119
3.3.1LocationService类 119
3.3.2构建场景和UI处理逻辑 119
3.3.3获取GPS数据 120
3.3.4通过地理位置获取城市 123
3.4在Unity中实现二维码的生成与识别 126
3.4.1QR CodeBarcode Scanner and Generator简介 126
3.4.2搭建工程场景 127
3.4.2扫描二维码 128
3.4.3生成二维码 130
3.5在Unity 3D中实现动态资源加载 132
3.5.1AssetBundle简介 132
3.5.2如何创建AssetBundle 132
3.5.3如何加载AssetBundle 134
3.5.4AssetBundle之间的依赖关系 135
3.6在Unity 3D中实现热更新 141
3.6.1热更新方案比较 141
3.6.2XLua简介 142
3.6.3如何使用XLua更新 142
第4章使用OpenCV开发图像识别应用 145
4.1OpenCV图像识别简介 145
4.1.1OpenCV图像识别技术应用领域 145
4.1.2OpenCV技术模块简介 145
4.1.3OpenCV For Unity插件介绍 147
4.2配置基础开发环境 148
4.2.1开发环境要求 148
4.2.2导入OpenCV For Unity插件包 148
4.2.3配置OpenCV For Unity插件 149
4.2.4运行OpenCV For Unity示例工程 149
4.3面部识别 152
4.3.1FaceTrackerSample扩展插件简介 152
4.3.2场景搭建 152
4.3.3编写面部识别脚本 155
第5章使用ARToolkit进行AR开发 160
5.1ARToolKit简介 160
5.1.1ARToolKit是什么 160
5.1.2ARToolKit特性简介 161
5.1.3ARToolKit插件包导入 161
5.1.4ARToolKit中的目录简介 163
5.2搭建一个简单的AR场景 163
5.2.1创建并设置AR Controller 163
5.2.2创建并设置ARMarker 165
5.2.3创建并设置AR Origin和AR Tracked Object 165
5.2.4创建并设置ARCamera 166
5.2.5运行场景 168
5.3ARToolKit中的识别图简介 168
5.3.1传统模板正方形识别图 168
5.3.22D-Barcode识别图 173
5.3.3多重识别图 175
5.3.4特征点识别图 177
5.4ARToolKit的进阶内容 178
5.4.1AR Controller的运行机制 178
5.4.2ARToolKit中性能问题的调查 178
5.4.3ARToolKit的使用限制 179
5.5跨平台开发的注意事项 180
5.5.1插件已知问题 180
5.5.2Android 180
5.5.3iOS 182
第6章Kinect应用开发 183
6.1Kinect简介 183
6.1.1Kinect是什么 183
6.1.2Kinect功能特性简介 183
6.2搭建Kinect的Unity 3D开发环境 184
6.2.1硬件需求 184
6.2.2安装DirectX 185
6.2.3安装Kinect SDK 186
6.2.4安装Kinect Unity插件 188
6.3使用Kinect制作体感游戏 190
6.3.1创建Kinect Manager 190
6.3.2导入人物3D模型并创建Avatar 190
6.3.3创建人物 192
6.3.4创建敌人 194
6.3.5为人物添加攻击处理 197
6.3.6添加UI显示 199
第7章HoloLens 202
7.1HoloLens简介 202
7.1.1Hologram简介 204
7.1.2HoloLens硬件细节 205
7.1.3HoloLens shell 207
7.1.4使用MRC 209
7.1.5HoloLens配件使用 210
7.2HoloLens使用与开发环境配置 210
7.2.1使用Windows Device Portal 210
7.2.2安装HoloLens开发工具 213
7.2.3HoloLens模拟器的使用 213
7.3使用Unity开发HoloLens全息应用 215
7.3.1配置适用于HoloLens开发的Unity工程 215
7.3.2摄像机(Camera)设置 219
7.3.3凝视(Gaze)功能实现 220
7.3.4手势(Gesture)功能实现 222
7.3.5语音输入(Voice input)功能实现 225
7.3.6世界锚(World Anchor)与场景保持(Persistence)功能实现 229
7.3.7空间音效(Spatial Sound)功能实现 234
7.3.8空间映射(Spatial Mapping)功能实现 235