本書基于Unity2022版本,系統(tǒng)地介紹了Unity編輯器的基礎(chǔ)界面、功能模塊和界面設(shè)置等。工欲善其事,必先利其器。要想學(xué)好Unity,程序開發(fā)是必不可少的,所以本書詳細介紹了C#語言的語法、條件語句、數(shù)組、集合、字符串類、文件的操作、常用算法和設(shè)計模式,以及Socket網(wǎng)絡(luò)編程等技術(shù)。本書共設(shè)18章,系統(tǒng)地闡述了Unity程序開發(fā)的全流程設(shè)計體系。內(nèi)容涵蓋Unity引擎核心機制與C#語言編程基礎(chǔ)兩大維度,具體包括C#語言基礎(chǔ)語法與編程范式、Unity界面交互設(shè)計原理、面向?qū)ο蟪绦蛟O(shè)計思想、常用數(shù)據(jù)結(jié)構(gòu)與算法實現(xiàn)、文件系統(tǒng)操作、多媒體資源整合、數(shù)據(jù)庫交互等核心模塊。教學(xué)體系設(shè)計強調(diào)問題解決能力培養(yǎng),通過典型案例解析引導(dǎo)讀者掌握需求分析方法與編程實現(xiàn)路徑。本書針對可視化界面開發(fā)這一實踐性環(huán)節(jié),采用漸進式教學(xué)法,將其與核心編程技術(shù)模塊進行有機整合。通過構(gòu)建“理論認(rèn)知-算法設(shè)計-界面實現(xiàn)”的完整學(xué)習(xí)鏈路,既可以降低技術(shù)實現(xiàn)門檻,又能強化工程化思維培養(yǎng)。這種編排方式既能激發(fā)學(xué)習(xí)者的自主探究能力,也為教師開展項目驅(qū)動式教學(xué)提供了有效支撐,最終實現(xiàn)知識體系構(gòu)建與實踐能力提升的雙重教學(xué)目標(biāo)。本書不僅可以作為廣大Unity初學(xué)者和對Unity感興趣的讀者的入門書籍,也可以作為從事Unity工作的開發(fā)人員的學(xué)習(xí)參考書,還可以作為開展Unity培訓(xùn)的學(xué);蛘邫C構(gòu)的教材。
本書是一本專為初學(xué)者量身打造的Unity學(xué)習(xí)寶典!Unity作為當(dāng)今游戲開發(fā)與交互設(shè)計領(lǐng)域的“超級引擎”,早已成為無數(shù)開發(fā)者的夢想起點。然而,面對復(fù)雜的引擎功能,新手往往無從下手。本書的出現(xiàn),恰似一盞明燈,照亮了初學(xué)者的前行之路。書中內(nèi)容層層遞進,從Unity的基礎(chǔ)架構(gòu)與操作界面講起,讓讀者迅速熟悉開發(fā)環(huán)境。隨后,通過大量精心設(shè)計的實戰(zhàn)項目,詳細剖析了游戲開發(fā)的各個環(huán)節(jié),從3D建模、動畫制作到腳本編程,從場景搭建到用戶交互設(shè)計,每一個知識點都配有清晰的步驟說明和詳細的代碼解析。書中還融入了豐富的微課視頻資源,讓抽象的概念變得直觀易懂,讓復(fù)雜的操作變得觸手可及。無論是對游戲開發(fā)充滿憧憬的初學(xué)者,還是希望在Unity領(lǐng)域深耕的技術(shù)人員,本書都能為你提供全方位的指導(dǎo)。它不僅是一本教程,更是一份通往Unity開發(fā)世界的通行證。翻開這本書,跟隨它的步伐,你將踏上一段充滿挑戰(zhàn)與驚喜的Unity學(xué)習(xí)之旅,開啟屬于你的創(chuàng)意開發(fā)之旅!
前 言
隨著互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,越來越多的人開始上網(wǎng)玩游戲,游戲開發(fā)人才急缺,如果你想成為 一名的游戲開發(fā)者,那么掌握 Unity 開發(fā)技術(shù)是不可或缺的一步。隨著移動互聯(lián)網(wǎng)的發(fā)展,移動端 游戲日益盛行,據(jù)了解,Unity 開發(fā)者超過 300 萬,1/4 在中國,超過 5000 家游戲公司和工作室在 使用 Unity 開發(fā)。因此,學(xué)會 Unity 游戲開發(fā),未來的職業(yè)發(fā)展將非?捎^。
Unity 到底是什么?為何如此受歡迎、市場占有率如此之高?Unity 是專業(yè)的游戲引擎,能夠創(chuàng)建 實時、可視化的 2D 和 3D 動畫、游戲,被譽為 3D 手游的傳奇。Unity 可以創(chuàng)建虛擬的現(xiàn)實空間,可以 讓游戲玩家在虛擬的世界里盡情發(fā)揮,使心靈得到釋放。近年游戲開發(fā)迅速崛起,發(fā)展為獨具特色且 前景廣闊的行業(yè),市場需要以 Unity 技術(shù)作為支撐的游戲,企業(yè)需要 Unity 技術(shù)開發(fā)人才。因此,掌握 Unity 技術(shù)的人才需求量也會越來越大。 游戲產(chǎn)業(yè)作為一個新興產(chǎn)業(yè),從初期形成到如今的快速發(fā)展并迅速走向成熟時期,已經(jīng)成為文化 娛樂產(chǎn)業(yè)、網(wǎng)絡(luò)經(jīng)濟的重要組成部分。目前國內(nèi)的游戲研發(fā)人才缺口巨大,對移動端技術(shù)開發(fā)人才的 需求非常迫切。
據(jù)數(shù)據(jù)顯示,目前我國對中高級游戲開發(fā)工程師的需求在 10 萬人以上,很多企業(yè)面臨招不到 工程師的問題。據(jù)統(tǒng)計,游戲開發(fā)工程師平均月薪約為 20418 元。未來幾年在多種因素的影響下,預(yù)計中國游戲市場研發(fā)人員的薪資將繼續(xù)上漲。
本書編者具有多年一線開發(fā)經(jīng)驗,屬于國內(nèi)早期接觸并開發(fā) VR(Virtual Reality,虛擬現(xiàn)實)游戲 的一批人,團隊開發(fā)的VR游戲已經(jīng)進入場館,反映良好。編者也是 CSDN 博客,主頁在 CSDN 擁有 340 萬訪問量,讓數(shù)百萬 Unity 開發(fā)者受益。
與現(xiàn)有教材相比,本書具有以下特點。
1.注重培養(yǎng)全棧式技能
本書解決了現(xiàn)有 Unity 教材在全棧式開發(fā)方面的不足,首先從 C#基礎(chǔ)講起,但沒有長篇大論地講述,而是篩選出 C#中在 Unity 開發(fā)時要用到的技術(shù);然后講解 Unity 基礎(chǔ);最后在實戰(zhàn)案例部分選擇 了兩個項目;一個是 Unity 游戲開發(fā)項目;另一個是數(shù)字孿生項目。
2.注重使用逐層深入的教學(xué)方式
本書通過逐層深入的教學(xué)方式,介紹開發(fā)流程和迭代過程,讓讀者知其然,也知其所以然。
3.注重使用實戰(zhàn)案例
本書中每一章都提供了豐富的實例,這些實例大多來自編者多年的工作和應(yīng)用軟件開發(fā)實踐,其中有些實例(如游戲、小程序等)具有較強的趣味性,可以激發(fā)讀者對程序設(shè)計的興趣。
本書資源及聯(lián)系方式
為方便讀者學(xué)習(xí),本書提供案例源文件,讀者請使用手機掃描資源包二維碼,將資源下載到計算機中學(xué)習(xí)使用。
本書在寫作過程中雖力求嚴(yán)謹(jǐn)細致,但由于時間與精力有限,書中疏漏之處在所難免。如果在閱讀過程中有任何疑問,可以掃描技術(shù)支持二維碼,與我們?nèi)〉寐?lián)系;也可以進入讀者交流群,在群內(nèi)交流學(xué)習(xí),共同進步。
致謝
在編寫本書時,編者秉持“做的 Unity 教科書”的精神,努力在有限的篇幅中展現(xiàn)更多對讀者 有用的內(nèi)容,期望可以帶領(lǐng)讀者快速入門 Unity。
編寫本書占據(jù)了編者大部分的業(yè)余時間,因此本書的出版離不開編者家人的默默支持,在此向他們表示誠摯的感謝!同時,也感謝出版社編輯的細致審校工作,是他們的辛勤工作了本書的順利 出版!
最后,祝愿各位讀者,事業(yè)順利,身體健康。
張 堯
2025 年 6 月
張堯,Unity3D領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,精通C#,云原生入門級開發(fā)者認(rèn)證,助理工程師,CSDN2022年度博客之星,CSDN博客,華為云云享,InfoQ博主,阿里云博客。
目 錄
第 1 章 進入 Unity 的世界 ························ 1
視頻講解:13 分鐘
1.1認(rèn)識 Unity 引擎 ·································· 1
1.1.1Unity 簡介 ······························· 2
1.1.2 Unity 發(fā)展史 ···························· 2
1.1.3 Unity 應(yīng)用領(lǐng)域 ························· 4
1.1.4 Unity 從業(yè)介紹 ························· 7
1.2 Unity 配置與運行 ······························· 8
1.2.1 Unity 版本介紹 ························· 8
1.2.2 推薦使用的 Unity 版本··············· 12
1.2.3 Unity Hub 的下載與安裝 ············ 12
1.2.4 Unity Hub 的授權(quán)與激活 ············ 14
1.2.5 Unity 的下載與安裝 ·················· 16
1.2.6 Unity 中文漢化 ························ 18
1.3 運行 Unity 項目 ································· 19
1.3.1 新建 Unity 項目························ 19
1.3.2 打開 Unity 項目························ 20
1.3.3 運行 Unity 項目························ 21
1.3.4 新建 C#腳本 ···························· 22
1.3.5 初識 Unity 的 API ····················· 24
代碼 1-1 Unity 編輯器 Awake 函數(shù)的使用 ······························ 24
代碼1-2 Update、FixedUpdate、LateUpdate 函數(shù)的調(diào)用順序 ····· 25
1.3.6 課后習(xí)題 ································ 26
1.4 Unity 編輯器簡介 ······························ 26
1.4.1 窗口布局 ································ 26
1.4.2 菜單欄 ··································· 31
1.4.3 工具欄 ··································· 36
1.4.4 工作視圖 ································ 37
1.4.5 重要概念 ································ 41
1.5 本章小結(jié) ········································· 44
第 2 章 Unity 創(chuàng)建場景 ·························· 45
視頻講解:5 分鐘 2.1 創(chuàng)建 2D 場景 ··································· 45
2.1.1 創(chuàng)建 2D 工程 ·························· 45
2.1.2 導(dǎo)入 2D 資源 ·························· 46
2.1.3 制作 2D 動畫 ·························· 47
2.1.4 課后習(xí)題 ································ 50
2.2 創(chuàng)建 3D 場景 ··································· 50
2.2.1 創(chuàng)建 3D 工程 ·························· 50
2.2.2 創(chuàng)建 3D 模型 ·························· 51
2.2.3 導(dǎo)入 3D 資源 ·························· 51
2.2.4 課后習(xí)題 ································ 52
2.3 本章小結(jié) ········································· 52
第 3 章 Unity 組件和預(yù)制體 ···················· 53
視頻講解:9 分鐘
3.1 游戲?qū)ο蠛徒M件 ································ 53
3.1.1 創(chuàng)建游戲?qū)ο?·························· 53
3.1.2 添加組件 ································ 54
3.1.3 特殊的組件——腳本 ················· 55
代碼 3-1 添加屬性 ··························· 55
3.1.4 課后習(xí)題 ································ 55
3.2 Unity 組件 ······································· 56
3.2.1 常用組件介紹 ·························· 56
3.2.2 獲取、添加和刪除組件 ·············· 57
代碼 3-2 獲取 Transform 組件············· 57
代碼 3-3 為游戲?qū)ο筇砑?Rigidbody 組件 ································ 58
代碼 3-4 刪除 Box Collider 組件 ········· 58
3.2.3 課后習(xí)題 ································ 59
3.3 Unity 預(yù)制體 ···································· 60
3.3.1 創(chuàng)建預(yù)制體 ····························· 60
3.3.2 實例化預(yù)制體 ·························· 61
代碼 3-5 實例化預(yù)制體 ····················· 61
3.3.3 課后習(xí)題 ································ 62
3.4 本章小結(jié) ········································· 62
第 4 章 Unity 的常用功能系統(tǒng) ················· 63
視頻講解:46 分鐘
4.1 Unity 的燈光系統(tǒng) ······························ 64
4.1.1 平行光 ··································· 64
4.1.2 點光源 ··································· 65
4.1.3 聚光燈 ··································· 65
4.1.4 面積光 ··································· 66
4.2 Unity 的遮擋剔除系統(tǒng) ························ 67
4.2.1 遮擋剔除原理 ·························· 67
4.2.2 遮擋剔除示例 ·························· 67
4.3 Unity 的導(dǎo)航系統(tǒng) ······························ 69
4.3.1 導(dǎo)航系統(tǒng)介紹 ·························· 70
4.3.2 導(dǎo)航系統(tǒng)面板介紹 ···················· 70
4.3.3 導(dǎo)航系統(tǒng)屬性介紹 ···················· 71
4.3.4 AI 尋路示例 ···························· 72
代碼 4-1 為對象添加坐標(biāo)點位置 ········· 74
4.3.5 課后習(xí)題 ································ 75
4.4 Unity 的 UI 系統(tǒng)之 UGUI ···················· 75
4.4.1 UGUI——Canvas······················ 76
4.4.2 UGUI——Text ························· 76
4.4.3 UGUI——Image ······················· 77
4.4.4 UGUI——Button ······················ 78
代碼 4-2 Button 監(jiān)聽函數(shù)測試代碼 ······ 78
代碼 4-3 動態(tài)添加監(jiān)聽事件 ··············· 79
4.4.5 UGUI——Toggle ······················ 79
代碼 4-4 Toggle 組件監(jiān)聽函數(shù)測試 代碼 ································· 80
代碼 4-5 通過代碼動態(tài)添加 Toggle 事件 ································· 81
4.4.6 UGUI——Slider ······················· 82
代碼 4-6 監(jiān)聽 Slider 組件的 Value 值, 改變 Text 的值 ···················· 83
4.4.7 UGUI——ScrollView ················· 84
4.4.8 UGUI——Dropdown ················· 85
代碼 4-7 Dropdown 組件的使用實例 ···· 86
4.4.9 UGUI——InputField ·················· 87
代碼 4-8 修改腳本,添加單擊登錄按鈕后顯示賬號和密碼功能 ········· 88
4.4.10 課后習(xí)題 ······························ 89
4.5 Unity 的 UI 系統(tǒng)之 GUI ······················ 90
4.5.1 GUI 簡介 ······························· 90
4.5.2 GUI 的基本控件 ······················ 90
代碼 4-9 GUI 常用控件的使用 ··········· 91
4.5.3 GUILayout 自動布局 ················· 92
代碼 4-10 使用默認(rèn) Rect 定位方式 排列 Label ························ 92
代碼 4-11 使用 GUILayout 自動布局 ···· 93
4.6 Unity 的動畫系統(tǒng) ······························ 93
4.6.1 導(dǎo)入動畫模型 ·························· 93
4.6.2 切換動畫 ································ 96
4.6.3 控制動畫的播放 ······················· 97
代碼 4-12 通過控制動畫參數(shù)切換動畫 ··· 98
4.7 本章小結(jié) ·································