第1章  Unity基礎    1
         1.1  初識遊戲引擎和Unity    2
         1.2  運行Unity    3
         1.2.1  Unity的版本    3
         1.2.2  下載並安裝Unity    4
         1.2.3  在綫激活Unity    4
         1.2.4  運行示例工程    4
         1.3  創建一個Hello World程序    7
         1.3.1  安裝Visual Studio    8
         1.3.2  編寫腳本    8
         1.3.3  編譯輸齣    10
         1.4  調試程序    11
         1.4.1  顯示Log    11
         1.4.2  在Visual Studio中設置斷點    11
         1.5  Unity腳本基礎    12
         1.5.1  Script(腳本)組件    12
         1.5.2  腳本的執行順序    13
         1.5.3  腳本的序列化    14
         1.5.4  組件式編程    15
         1.5.5  協程編程    16
         1.6  預置文件Prefab和資源管理    17
         1.6.1  創建Prefab    17
         1.6.2  Unity資源包    18
         1.6.3  管理Unity插件    18
         1.7  讀取資源和實例化    19
         1.7.1  在腳本中創建一個Game Object    19
         1.7.2  通過序列化方式引用資源    19
         1.7.3  通過IO方式讀取資源    20
         1.8  保存工程    20
         1.9  時間和動畫    21
         1.10  小結    21
         第2章  太空射擊遊戲    23
         2.1  遊戲介紹    24
         2.1.1  遊戲操作    24
         2.1.2  主角和敵人    24
         2.1.3  遊戲UI    24
         2.2  導入美術資源    24
         2.3  創建場景    25
         2.3.1  創建火星背景和星空動畫    26
         2.3.2  設置攝像機和燈光    30
         2.4  創建主角    31
         2.4.1  創建腳本    32
         2.4.2  控製飛船移動    33
         2.4.3  創建子彈    35
         2.4.4  創建子彈Prefab    36
         2.4.5  發射子彈    37
         2.5  創建敵人    38
         2.6  物理碰撞    39
         2.6.1  添加碰撞體    39
         2.6.2  觸發碰撞    40
         2.7  高級敵人    43
         2.7.1  創建敵人    43
         2.7.2  發射子彈    44
         2.8  聲音與特效    46
         2.9  敵人生成器    48
         2.10  遊戲UI和戰鬥管理    50
         2.10.1  創建顯示得分的UI界麵    50
         2.10.2  創建顯示遊戲失敗的UI界麵    51
         2.10.3  編寫腳本    52
         2.11  關卡跳轉    54
         2.12  用鼠標控製主角    56
         2.13  精確的碰撞檢測    58
         2.14  自動創建Prefab    60
         2.15  發布遊戲    62
         2.16  使用PoolManager創建對象池    64
         2.17  小結    66
         第3章  第一人稱射擊遊戲    68
         3.1  策劃    69
         3.1.1  遊戲介紹    69
         3.1.2  UI界麵    69
         3.1.3  主角    69
         3.1.4  敵人    69
         3.2  遊戲場景    69
         3.3  主角    70
         3.3.1  角色控製器    70
         3.3.2  攝像機    72
         3.3.3  武器    73
         3.4  敵人    74
         3.4.1  尋路    74
         3.4.2  設置動畫    76
         3.4.3  行為    77
         3.5  UI界麵    80
         3.6  交互    84
         3.6.1  主角的射擊    84
         3.6.2  敵人的進攻與死亡    86
         3.7  齣生點    88
         3.8  小地圖    90
         3.9  小結    93
         第4章  塔防遊戲    94
         4.1  策劃    95
         4.1.1  場景    95
         4.1.2  攝像機    95
         4.1.3  勝負判定    95
         4.1.4  敵人    95
         4.1.5  防守單位    95
         4.1.6  UI界麵    95
         4.2  地圖編輯器    96
         4.2.1  “格子”數據    96
         4.2.2  在Inspector窗口添加自定義UI
         控件    98
         4.2.3  創建一個自定義窗口    100
         4.3  遊戲場景    102
         4.4  製作UI    103
         4.5  創建遊戲管理器    105
         4.6  攝像機    109
         4.7  路點    111
         4.8  敵人    115
         4.9  敵人生成器    118
         4.9.1  創建敵人生成器    118
         4.9.2  遍曆敵人    121
         4.10  防守單位    121
         4.11  生命條    130
         4.12  小結    132
         第5章  2D遊戲    133
         5.1  Unity 2D係統簡介    134
         5.2  創建Sprite    134
         5.2.1  使用SpriteEditor創建Sprite    134
         5.2.2  使用SpritePacker創建Sprite    136
         5.2.3  圖層排序    137
         5.2.4  Sprite邊框和重復顯示    138
         5.3  動畫製作    138
         5.3.1  序列幀動畫    138
         5.3.2  使用腳本實現序列幀動畫    140
         5.3.3  骨骼動畫    141
         5.4  2D物理    142
         5.5  捕魚遊戲    146
         5.5.1  遊戲玩法    146
         5.5.2  準備2D資源    146
         5.5.3  創建魚    148
         5.5.4  創建魚群生成器    150
         5.5.5  創建子彈和大炮    151
         5.5.6  物理碰撞    153
         5.6  2D材質    154
         5.6.1  修改Sprite顔色    154
         5.6.2  自定義的黑白效果材質    155
         5.7  小結    155
         第6章  與Web服務器的交互    156
         6.1  Web服務器簡介    157
         6.2  在Windows上安裝部署Apache    158
         6.2.1  安裝Apache    158
         6.2.2  Apache常用命令    159
         6.2.3  安裝MySQL    159
         6.2.4  安裝PHP    161
         6.2.5  安裝Redis    162
         6.3  PHP開發環境    163
         6.3.1  第一個PHP程序    163
         6.3.2  調試PHP代碼    164
         6.3.3  PHP基本語法    165
         6.4  WWW基本應用    167
         6.4.1  創建簡單的UI界麵    167
         6.4.2  GET請求    168
         6.4.3  POST請求    169
         6.4.4  上傳下載圖片    170
         6.4.5  下載聲音文件    171
         6.5  分數排行榜    172
         6.5.1  創建數據庫    172
         6.5.2  創建PHP腳本    173
         6.5.3  上傳下載分數    175
         6.5.4  使用Redis緩存數據    177
         6.6  MD5驗證    179
         6.7  小結    180
         第7章  TCP UDP實例    181
         7.1  網絡開發簡介    182
         7.2  簡單的網絡通信程序    184
         7.2.1  簡單的TCP程序    184
         7.2.2  簡單的UDP程序    186
         7.3  異步TCP網絡通信    188
         7.3.1  創建數據包對象    188
         7.3.2  邏輯處理    190
         7.3.3  核心TCP網絡功能    192
         7.3.4  創建聊天協議    196
         7.4  Unity聊天客戶端    197
         7.5  聊天服務器端    200
         7.6  JSON.NET簡介    205
         7.7  小結    206
         第8章  HTML5(WebGL)遊戲移植    207
         8.1  關於HTML5和WebGL    208
         8.2  導齣Unity遊戲到WebGL平颱    208
         8.2.1  導齣WebGL遊戲    208
         8.2.2  設置WebGL模闆    210
         8.2.3  默認的index.html    210
         8.2.4  文件訪問    211
         8.3  自定義Loading頁麵    212
         8.4  編寫WebGL遊戲插件    215
         8.4.1  訪問JavaScript示例一    215
         8.4.2  訪問JavaScript示例二    216
         8.5  在網頁上保存遊戲記錄    217
         8.6  小結    217
         第9章  iOS遊戲移植    218
         9.1  iOS簡介    219
         9.2  軟件安裝    219
         9.3  申請開發權限    219
         9.4  設置iOS開發環境    219
         9.5  測試iOS遊戲    222
         9.6  發布iOS遊戲    223
         9.7  對接iOS原生語言    223
         9.7.1  在Xcode中創建Objectiv-C
         代碼    223
         9.7.2  在Unity中引用Objectiv-C
         代碼    226
         9.8  內消費    227
         9.9  本地存儲位置    227
         9.10  使用命令行編譯Xcode工程    228
         9.10.1  編譯Xcode工程    228
         9.10.2  打包.ipa文件    228
         9.11  小結    228
         第10章  Android遊戲移植    229
         10.1  Android簡介    230
         10.2  安裝Android SDK    230
         10.3  運行Android遊戲    231
         10.3.1  準備測試環境    231
         10.3.2  設置Android遊戲工程    232
         10.3.3  測試Android遊戲    234
         10.3.4  發布Android遊戲    234
         10.3.5  Obb數據包    236
         10.4  使用Android Studio    236
         10.4.1  Android Studio簡介    237
         10.4.2  配置Android Studio    237
         10.4.3  創建Hello world程序    238
         10.5  從Unity到Android Studio    239
         10.5.1  創建Unity工程    240
         10.5.2  創建Android Studio工程    241
         10.5.3  查看Log    243
         10.5.4  發布程序    244
         10.6  使用腳本編譯遊戲    245
         10.6.1  在Unity中使用腳本導齣
         Android工程    245
         10.6.2  使用Python腳本訪問Unity
         命令行    247
         10.6.3  使用命令行編譯Android Studio
         工程    248
         10.7  獲得簽名證書的sha1值    249
         10.8  導入庫文件    250
         10.9  Plugins目錄    251
         10.10  代碼混淆    251
         10.11  百度地圖實例    252
         10.11.1  導入百度地圖SDK    252
         10.11.2  實現百度地圖控件    253
         10.12  觸屏操作    256
         10.13  AssetBundle    261
         10.13.1  創建AssetBundle資源    261
         10.13.2  下載、實例化AssetBundle
         資源    263
         10.13.3  批量創建AssetBundle    264
         10.14  小結    265
         第11章  Unity新GUI完全攻略    266
         11.1  Unity的GUI係統    267
         11.2  Canvas(畫布)    267
         11.2.1  創建Canvas    268
         11.2.2  設置Canvas    268
         11.2.3  Canvas的屏幕適應模式    271
         11.2.4  Canvas層級內UI控件的
         排序    271
         11.2.5  Canvas的隱藏和顯示    272
         11.2.6  查找UI層級下的子控件    272
         11.3  UI坐標對齊方式    272
         11.4  Text(文字)    273
         11.5  自定義字體    274
         11.5.1  創建字體貼圖    274
         11.5.2  創建Shader    276
         11.6  Image(圖像)    278
         11.6.1  創建Image控件    278
         11.6.2  設置Alpha    279
         11.6.3  設置Raycast Target    279
         11.6.4  設置UI圖像為Sliced類型    280
         11.6.5  設置UI圖像為Tiled類型    281
         11.6.6  設置UI圖像為Filled類型    281
         11.6.7  Mask(濛版)    282
         11.7  Button(按鈕)控件    283
         11.7.1  創建按鈕    283
         11.7.2  設置按鈕狀態變化    283
         11.7.3  在編輯器中設置按鈕觸發
         事件    284
         11.7.4  在腳本中定義按鈕單擊事件    285
         11.7.5  判斷按壓按鈕事件    286
         11.8  Toggle(開關)控件    286
         11.8.1  創建Toggle控件    286
         11.8.2  Toggle組    287
         11.8.3  Toggle控件的腳本    288
         11.9  Raw Image控件    288
         11.10  Slider(滑塊)控件    290
         11.10.1  創建Slider控件    290
         11.10.2  改變滑塊大小    290
         11.10.3  使用腳本控製滑塊    291
         11.11  Input Field(文本輸入)控件    291
         11.12  Scroll View(捲軸視圖)控件    292
         11.13  Dropdown(下拉列錶)控件    294
         11.14  實用UI功能    295
         11.14.1  判斷是否單擊瞭UI    295
         11.14.2  拖動UI控件方法1    295
         11.14.3  拖動UI控件方法2    297
         11.14.4  在UI前麵顯示粒子特效    298
         11.15  使用插件DOTween製作動畫    299
         11.15.1  在編輯器中設置DOTween
         動畫    299
         11.15.2  在腳本中設置DOTween
         動畫    300
         11.16  使用插件EnhancedScroller優化
         捲軸視圖    301
         11.16.1  創建數據模型    302
         11.16.2  創建UI視圖控製腳本    302
         11.16.3  創建控製器    302
         11.16.4  創建捲軸視圖UI    303
         11.17  小結    305
         第12章  遊戲開發中的美術工作
         流程    306
         12.1  Unity和藝術傢    307
         12.2  視圖操作捕捉    307
         12.3  光照和渲染係統    308
         12.3.1  光源類型    308
         12.3.2  渲染管道    309
         12.3.3  質量設置    310
         12.3.4  實時陰影    310
         12.3.5  環境光    312
         12.3.6  Fog(霧)    313
         12.3.7  直接照明與間接照明    314
         12.3.8  Lightmapping(光照貼圖)    316
         12.3.9  環境反射采樣    321
         12.3.10  光照采樣    322
         12.4  色彩空間    324
         12.5  物理材質    326
         12.6  攝像機    329
         12.7  地形    331
         12.8  粒子特效    334
         12.9  物理設置    339
         12.10  遊戲資源    341
         12.10.1  貼圖    341
         12.10.2  在3ds Max中創建
         法綫貼圖    342
         12.10.3  3ds Max靜態模型導齣    343
         12.10.4  3ds Max動畫導齣    345
         12.10.5  Maya模型導齣    345
         12.11  Unity兩足動畫係統    346
         12.11.1  修改3ds Max兩足動畫
         骨骼    347
         12.11.2  導入3ds Max兩足角色到
         Unity    348
         12.11.3  導入角色動畫到Unity    348
         12.11.4  錶情動畫    349
         12.11.5  動畫控製器    350
         12.12  動畫插件Skele    351
         12.13  電影片段製作    355
         12.14  美術資源的優化    357
         12.15  小結    358
         第13章  Behavior Designer——行為
         樹AI    359
         13.1  行為樹和AI    360
         13.1.1  行為樹插件的安裝    360
         13.1.2  簡單的AI處理方式    360
         13.1.3  狀態機AI處理方式    361
         13.1.4  Behavior Designer的行為樹AI
         處理方式    362
         13.2  行為樹任務    363
         13.2.1  任務返迴值    363
         13.2.2  Action(動作)    363
         13.2.3  Composite(組閤)    363
         13.2.4  Conditional(條件)    365
         13.2.5  Decorator(修飾)    366
         13.3  行為樹實例    366
         13.3.1  主角的行為樹    367
         13.3.2  遊蕩的敵人    372
         13.3.3  行為樹的交互    373
         13.4  行為樹係統擴展    376
         13.4.1  外部行為樹    376
         13.4.2  自定義任務    377
         13.4.3  自定義共享數據類型    378
         13.4.4  在腳本中設置行為樹    380
         13.4.5  在腳本中發送事件    380
         13.5  優化    380
         13.6  小結    381
         第14章  玩轉PlayMaker    382
         14.1  關於PlayMaker    383
         14.1.1  優點和缺點    383
         14.1.2  安裝    383
         14.2  PlayMaker的模塊和工作機製    384
         14.2.1  有限狀態機    384
         14.2.2  創建PlayMaker狀態機    384
         14.2.3  State(狀態)    385
         14.2.4  Event(事件)    385
         14.2.5  Action(動作)    386
         14.2.6  變量    387
         14.2.7  發送事件    388
         14.3  自定義Action    388
         14.4  小結    391
         第15章  VR虛擬現實開發    392
         15.1  VR簡介    393
         15.2  設置HTC Vive開發環境    393
         15.3  VR操作示例    394
         15.3.1  創建VR場景    394
         15.3.2  手柄控製器    395
         15.4  小結    397
         第16章  AR增強現實開發    398
         16.1  AR和Vuforia    399
         16.2  創建Vuforia工程    399
         16.3  準備AR參考目標    401
         16.4  設置AR參考目標    402
         16.5  小結    404
         第17章  Shader編程與後期特效    405
         17.1  Shader簡介    406
         17.2  渲染管綫    406
         17.3  ShaderLab語言    407
         17.4  CG語言簡介    409
         17.5  Vertex and Fragment Shader示例    409
         17.5.1  顯示紋理和色彩    409
         17.5.2  使用通道錶現多個紋理    412
         17.5.3  添加基本光照    414
         17.5.4  UV動畫效果    415
         17.5.5  黑白效果    416
         17.5.6  簡單描邊效果    417
         17.5.7  Alpha透明效果    419
         17.6  屏幕特效示例    421
         17.7  後期特效    423
         17.8  小結    424
         第18章  動態編程和Lua    425
         18.1  動態語言簡介    426
         18.2  動態讀取程序集實現熱更新    426
         18.2.1  創建.dll文件    426
         18.2.2  測試熱更新.dll文件    427
         18.2.3  通過反射訪問.dll文件    428
         18.3  Lua語言快速教程    429
         18.3.1  MoonSharp和Lua開發環境的
         安裝    429
         18.3.2  Lua提供的類型    429
         18.3.3  Lua的判斷和循環語句    430
         18.3.4  Lua的函數    431
         18.3.5  Lua的IO操作    431
         18.3.6  Lua的數組操作    432
         18.3.7  Lua的字符串操作    433
         18.3.8  Lua的協程    433
         18.4  Lua與Unity的交互    435
         18.4.1  在Unity中讀取Lua代碼    435
         18.4.2  將Unity 功能導入到
         Lua中    436
         18.5  Lua腳本的熱更新    437
         18.6  小結    438
         附錄A  C#語言    439
         A.1  C#基礎    440
         A.1.1  C#簡介    440
         A.1.2  運行控製颱程序    440
         A.1.3  類型    441
         A.1.4  內置類型    441
         A.1.5  標識符    442
         A.1.6  語句和錶達式    442
         A.1.7  變量和常量    443
         A.1.8  枚舉    443
         A.1.9  數學操作符    443
         A.1.10  關係操作符    444
         A.1.11  邏輯操作符    444
         A.1.12  操作符優先級    445
         A.1.13  方法    445
         A.1.14  遞歸    446
         A.1.15  條件分支語句    446
         A.1.16  循環語句    447
         A.1.17  三元操作符    448
         A.1.18  預處理    448
         A.2  麵嚮對象編程    449
         A.2.1  類    449
         A.2.2  this關鍵字    450
         A.2.3  封裝    451
         A.2.4  繼承與多態    452
         A.2.5  靜態成員    454
         A.2.6  異常處理    455
         A.3  字符串    456
         A.4  數組    458
         A.4.1  創建數組    458
         A.4.2  遍曆數組和迭代器    458
         A.5  基本I/O操作    460
         A.5.1  寫文件    460
         A.5.2  讀文件    461
         A.5.3  刪除文件    462
         A.5.4  二進製讀寫    462
         A.6  泛型    463
         A.6.1  實現泛型的基本語法    463
         A.6.2  List的常見操作    464
         A.6.3  List的排序    465
         A.7  委托    468
         A.7.1  委托    468
         A.7.2  Lambda錶達式    469
         A.7.3  泛型委托    470
         A.7.4  Action和Func    470
         A.8  反射和特性    471
         A.8.1  反射    471
         A.8.2  特性    471
         A.9  小結    472
         附錄B  特殊文件夾    473
         附錄C  Unity編輯器菜單中英文對照    475
      · · · · · ·     (
收起)