|
-- 會員 / 註冊 --
|
|
|
|
Unity 3D腳本編程與游戲開發 ( 簡體 字) |
作者:馬遙 沈琰 | 類別:1. -> 多媒體 -> 遊戲引擎 -> Unity |
譯者: |
出版社:人民郵電出版社 | 3dWoo書號: 54388 詢問書籍請說出此書號!【缺書】 NT售價: 400 元 |
出版日:5/1/2021 |
頁數:352 |
光碟數:0 |
|
站長推薦: |
印刷:黑白印刷 | 語系: ( 簡體 版 ) |
|
加入購物車 │加到我的最愛 (請先登入會員) |
ISBN:9787115558756 |
作者序 | 譯者序 | 前言 | 內容簡介 | 目錄 | 序 |
(簡體書上所述之下載連結耗時費功, 恕不適用在台灣, 若讀者需要請自行嘗試, 恕不保證) |
作者序: |
譯者序: |
前言: |
內容簡介:本書以游戲開發為主要線索,全面講解Unity 3D的編程技術,涵蓋Unity 3D引擎的各個系統與模塊。全書從幫助讀者迅速建立腳本編程和游戲開發的框架思路開始講起,逐步闡述Unity 3D游戲開發的核心概念,以及對游戲開發至關重要的物理系統和3D數學基礎等技術基礎。然后針對游戲中的界面、動畫、特效與音頻等Unity 3D各個常用模塊的使用方法進行講解,并詳細介紹游戲開發中數據管理與資源管理相關的知識。隨后通過潛入型游戲的完整案例將本書所講知識融會貫通。最后,講解游戲人工智能開發技術,以及對象池等高級編程技術,幫助讀者提升應對實際工作的能力。 本書內容全面,講解細致,適合游戲開發的初學者入門,也適合相關培訓機構作為教材。 |
目錄:第 1章 Unity腳本概覽 9 1.1 控制物體的運動 10 1.1.1 新建腳本 10 1.1.2 Start和Update事件 11 1.1.3 修改物體位置 13 1.1.4 讀取和處理輸入 14 1.1.5 實例:實現一個移動的小球 15 1.2 觸發器事件 16 1.2.1 創建觸發器 16 1.2.2 觸發器事件函數 17 1.2.3 實例:吃金幣 18 1.3 制作第 一個游戲:3D滾球跑酷 20 1.3.1 游戲設計 20 1.3.2 功能實現 21 1.3.3 游戲機制 22 1.3.4 完成和完善游戲 24
第 2章 Unity基本概念與腳本編程 27 2.1 Unity基本概念 28 2.1.1 游戲物體和組件 28 2.1.2 變換組件 31 2.1.3 “父子關系”詳解 33 2.1.4 物體的標簽和層 36 2.1.5 常用組件 36 2.2 用腳本獲取物體和組件 38 2.2.1 物體、組件和對象 38 2.2.2 獲取組件的方法 39 2.2.3 獲取物體的方法 40 2.2.4 在物體和組件之間任意遨游 42 2.2.5 利用公開變量引用物體和組件 46 2.3 用腳本創建物體 49 2.3.1 預制體 49 2.3.2 創建物體 50 2.3.3 創建組件 52 2.3.4 銷毀物體或組件 53 2.3.5 定時創建和銷毀物體 54 2.4 腳本的生命周期 55 2.4.1 理解腳本的生命周期 56 2.4.2 常見的事件方法 56 2.4.3 實例:跟隨主角的攝像機 58 2.4.4 觸發器事件 59 2.5 協程入門 61 2.6 實例:3D射擊游戲 63 2.6.1 游戲總體設計 63 2.6.2 游戲的實現要點 63 2.6.3 創建主角 64 2.6.4 調整攝像機 66 2.6.5 實現武器系統和子彈 66 2.6.6 實現敵人角色 71 2.6.7 子彈擊中的邏輯 73 2.6.8 完善游戲 75 2.6.9 測試和改進 76
第3章 物理系統 77 3.1 物理系統基本概念 78 3.1.1 剛體 78 3.1.2 休眠 78 3.1.3 碰撞體 79 3.1.4 物理材質 80 3.1.5 觸發器 80 3.1.6 碰撞體的分類 81 3.1.7 碰撞事件表 82 3.1.8 層 83 3.1.9 物理關節 83 3.1.10 射線檢測 84 3.1.11 角色控制器與物理系統 84 3.1.12 3D物理系統與2D物理系統 85 3.2 物理系統腳本編程 86 3.2.1 獲取剛體組件 86 3.2.2 施加作用力 86 3.2.3 修改速度 87 3.2.4 射線的使用方法 88 3.2.5 層和層遮罩 90 3.2.6 射線編程詳解 90 3.2.7 修改物理材質 93 3.2.8 FixedUpdate詳解 94 3.2.9 修改角速度 96 3.2.10 質心 96 3.2.11 更多施加力的方式 97 3.2.12 剛體約束 98 3.3 實例:基于物理系統的2D平臺闖關游戲 99 3.3.1 游戲設計 99 3.3.2 功能實現 99 3.3.3 游戲機制 100 3.3.4 完成和完善游戲 103
第4章 游戲開發數學基礎 107 4.1 數學對游戲的重要性 108 4.2 坐標系 109 4.2.1 世界坐標系 109 4.2.2 左手坐標系與右手坐標系 109 4.2.3 局部坐標系 110 4.2.4 屏幕坐標系 112 4.3 向量 112 4.3.1 向量加法 113 4.3.2 向量減法 113 4.3.3 向量的數乘 114 4.3.4 向量的點積 114 4.3.5 向量的叉積 115 4.3.6 Vector3結構體 116 4.3.7 位置與向量的關聯 117 4.3.8 向量坐標系的轉換 118 4.4 矩陣簡介 119 4.4.1 常用矩陣介紹 119 4.4.2 齊次坐標 120 4.5 四元數 120 4.5.1 萬向節鎖定 120 4.5.2 四元數的概念 121 4.5.3 Quaternion結構體 122 4.5.4 理解和運用四元數 123 4.5.5 四元數的插值 125 4.5.6 朝向與向量 125 4.6 實例:第 一人稱視角的角色控制器 127 4.6.1 搭建簡單場景 127 4.6.2 創建主角物體 127 4.6.3 編寫控制腳本——移動部分 128 4.6.4 編寫控制腳本——旋轉部分 129 4.6.5 隱藏并鎖定鼠標指針 131 4.6.6 整理和完善 131
第5章 腳本與UI系統 133 5.1 用腳本操作常用UI控件 134 5.1.1 創建游戲界面 134 5.1.2 矩形變換(Rect Transform)組件 135 5.1.3 圖片(Image)組件 137 5.1.4 文本(Text)組件 138 5.1.5 按鈕(Button)組件 139 5.1.6 單選框(Toggle)組件 141 5.1.7 滑動條(Slider)組件 142 5.1.8 輸入框(Input Field)組件 143 5.1.9 滾動區域(Scroll Rect)組件 144 5.2 腳本與事件系統 146 5.2.1 常用輸入事件 147 5.2.2 常用輸入事件的參數 150 5.2.3 動態添加事件響應方法 151 5.2.4 事件觸發器(Event Trigger) 152 5.2.5 動態綁定事件的高級技巧 153 5.3 實例:界面制作與適配 155 5.3.1 設置UI畫布 156 5.3.2 制作游戲界面的準備 159 5.3.3 制作游戲界面 161 5.3.4 制作背包界面 163 5.3.5 利用進度條制作血條 164
第6章 腳本與動畫系統 165 6.1 動畫系統基本概念 166 6.1.1 動畫的基本概念 166 6.1.2 動畫融合 167 6.1.3 動畫狀態機 168 6.1.4 根骨骼動畫 170 6.2 2D動畫實例分析 171 6.2.1 準備工作 171 6.2.2 角色與控制的制作步驟 173 6.2.3 動畫的制作步驟 175 6.2.4 創建動畫變量 176 6.2.5 設置動畫過渡 177 6.2.6 用腳本修改動畫變量 178 6.2.7 腳本編程重點提示 179 6.2.8 總結和拓展 180 6.3 三維模型與動畫的導入 181 6.3.1 導入示例 181 6.3.2 三維模型資源設置 181 6.3.3 三維動畫資源設置 183 6.3.4 模型骨骼與動畫骨骼的關系 185 6.4 動畫進階技術實例分析 187 6.4.1 動畫融合樹 187 6.4.2 第三人稱角色控制的腳本分析 189 6.4.3 根骨骼動畫的運用 193 6.4.4 動畫遮罩 195 6.4.5 動畫層 196 6.4.6 動畫幀事件 197 6.4.7 反向動力學(IK) 198
第7章 腳本與特效 201 7.1 特效總覽 202 7.1.1 粒子 202 7.1.2 動畫 202 7.1.3 動效 202 7.1.4 貼花 203 7.1.5 拖尾 203 7.1.6 后期處理 203 7.2 特效的使用方法 204 7.2.1 各種特效的基本使用方法 204 7.2.2 動效與緩動動畫 208 7.2.3 DOTween插件使用方法簡介 209 7.2.4 拖尾特效 214 7.2.5 后期處理舉例 216
第8章 腳本與音頻 219 8.1 音頻基礎概念 220 8.1.1 音源與音頻偵聽器 220 8.1.2 音源組件詳解 220 8.2 腳本與音樂、音效 221 8.2.1 用腳本控制音樂播放 222 8.2.2 添加音效實例 223 8.2.3 音頻管理器 225
第9章 腳本與資源管理 229 9.1 工程與資源 230 9.1.1 Unity項目的文件夾結構 230 9.1.2 META文件 231 9.1.3 動態加載和釋放資源 232 9.2 資產包與熱更新 233 9.2.1 資產包(Asset Bundles) 234 9.2.2 資源的常用路徑 236 9.2.3 資產的依賴關系 237 9.2.4 從網絡加載資源 238 9.2.5 熱更新淺析 239
第 10章 數據的保存與加載 243 10.1 腳本與序列化 244 10.1.1 序列化的概念 244 10.1.2 簡單存儲PlayerPrefs 244 10.2 腳本與JSON 246 10.2.1 JSON簡介 246 10.2.2 安裝LitJSON庫 249 10.2.3 讀取JSON 252 10.2.4 保存JSON 255 10.2.5 在網絡中使用JSON 257 10.3 其他序列化方法 258 10.3.1 C#的序列化庫 258 10.3.2 二進制序列化實例 259 10.3.3 序列化與Unity編輯器的聯系 261
第 11章 腳本與游戲AI 263 11.1 游戲AI綜述 264 11.1.1 游戲AI的特點 264 11.1.2 常用AI技術 265 11.1.3 AI的層次 265 11.2 腳本與導航系統 266 11.2.1 導航系統相關組件 266 11.2.2 構建導航網格 266 11.2.3 創建導航代理 268 11.2.4 導航障礙物 270 11.2.5 導航鏈接 272 11.2.6 導航系統補充說明 273 11.2.7 導航綜合實例 274 11.3 游戲AI的編程方法 277 11.3.1 有限狀態機的概念 277 11.3.2 模擬AI視覺 280 11.3.3 游戲AI實例 285 11.3.4 擴展AI狀態機 289 11.3.5 其他AI編程技術 291
第 12章 綜合實例——秘密敢死隊 293 12.1 游戲設計 294 12.1.1 潛行類游戲簡介 294 12.1.2 游戲總體設計 294 12.2 素材導入和場景搭建 295 12.2.1 下載并導入素材 295 12.2.2 布置場景 295 12.3 游戲主角的制作 296 12.3.1 創建角色 296 12.3.2 創建動畫 296 12.3.3 實現角色移動 297 12.3.4 切換武器和道具 301 12.3.5 添加武器掛點 302 12.3.6 實現武器和道具的基本功能 303 12.3.7 武器和道具的控制 308 12.3.8 完善主角動畫 311 12.3.9 完善主角游戲邏輯 312 12.3.10 實現拋物線指示器 312 12.4 敵人角色的制作 314 12.4.1 創建敵人角色和動畫 314 12.4.2 敵人角色腳本框架 315 12.4.3 實現巡邏邏輯 319 12.4.4 實現視覺感知 320 12.4.5 實現追擊功能 322 12.4.6 實現攻擊功能 323 12.4.7 組合并實現完整的AI角色 324 12.4.8 敵人的參數設置 326 12.5 搭建關卡并完善游戲 327 12.5.1 關卡設計的示例 327 12.5.2 添加成功和失敗的邏輯 328
第 13章 進階編程技術 329 13.1 對象池 330 13.1.1 為什么要使用對象池 330 13.1.2 簡易對象池實例 330 13.1.3 對象池測試方法 332 13.1.4 性能分析器 334 13.1.5 支持多種物體的對象池 335 13.2 Unity協程詳解 339 13.2.1 熟悉而陌生的協程 339 13.2.2 迭代器 340 13.2.3 協程的延時執行原理 341 13.2.4 協程與遞歸 344 13.3 Unity事件詳解 346 13.3.1 Unity事件實例 346 13.3.2 Unity事件的多參數形式 348 13.3.3 Unity事件與委托 350
|
序: |
|