本書基于Unity2022版本,系統(tǒng)地介紹了Unity編輯器的基礎(chǔ)界面、功能模塊和界面設(shè)置等。工欲善其事,必先利其器。要想學(xué)好Unity,程序開發(fā)是必不可少的,所以本書詳細(xì)介紹了C#語言的語法、條件語句、數(shù)組、集合、字符串類、文件的操作、常用算法和設(shè)計(jì)模式,以及Socket網(wǎng)絡(luò)編程等技術(shù)。本書共設(shè)18章,系統(tǒng)地闡述了Unity程序開發(fā)的全流程設(shè)計(jì)體系。內(nèi)容涵蓋Unity引擎核心機(jī)制與C#語言編程基礎(chǔ)兩大維度,具體包括C#語言基礎(chǔ)語法與編程范式、Unity界面交互設(shè)計(jì)原理、面向?qū)ο蟪绦蛟O(shè)計(jì)思想、常用數(shù)據(jù)結(jié)構(gòu)與算法實(shí)現(xiàn)、文件系統(tǒng)操作、多媒體資源整合、數(shù)據(jù)庫交互等核心模塊。教學(xué)體系設(shè)計(jì)強(qiáng)調(diào)問題解決能力培養(yǎng),通過典型案例解析引導(dǎo)讀者掌握需求分析方法與編程實(shí)現(xiàn)路徑。本書針對(duì)可視化界面開發(fā)這一實(shí)踐性環(huán)節(jié),采用漸進(jìn)式教學(xué)法,將其與核心編程技術(shù)模塊進(jìn)行有機(jī)整合。通過構(gòu)建“理論認(rèn)知-算法設(shè)計(jì)-界面實(shí)現(xiàn)”的完整學(xué)習(xí)鏈路,既可以降低技術(shù)實(shí)現(xiàn)門檻,又能強(qiáng)化工程化思維培養(yǎng)。這種編排方式既能激發(fā)學(xué)習(xí)者的自主探究能力,也為教師開展項(xiàng)目驅(qū)動(dòng)式教學(xué)提供了有效支撐,最終實(shí)現(xiàn)知識(shí)體系構(gòu)建與實(shí)踐能力提升的雙重教學(xué)目標(biāo)。本書不僅可以作為廣大Unity初學(xué)者和對(duì)Unity感興趣的讀者的入門書籍,也可以作為從事Unity工作的開發(fā)人員的學(xué)習(xí)參考書,還可以作為開展Unity培訓(xùn)的學(xué);蛘邫C(jī)構(gòu)的教材。
本書是一本專為初學(xué)者量身打造的Unity學(xué)習(xí)寶典!Unity作為當(dāng)今游戲開發(fā)與交互設(shè)計(jì)領(lǐng)域的“超級(jí)引擎”,早已成為無數(shù)開發(fā)者的夢想起點(diǎn)。然而,面對(duì)復(fù)雜的引擎功能,新手往往無從下手。本書的出現(xiàn),恰似一盞明燈,照亮了初學(xué)者的前行之路。書中內(nèi)容層層遞進(jìn),從Unity的基礎(chǔ)架構(gòu)與操作界面講起,讓讀者迅速熟悉開發(fā)環(huán)境。隨后,通過大量精心設(shè)計(jì)的實(shí)戰(zhàn)項(xiàng)目,詳細(xì)剖析了游戲開發(fā)的各個(gè)環(huán)節(jié),從3D建模、動(dòng)畫制作到腳本編程,從場景搭建到用戶交互設(shè)計(jì),每一個(gè)知識(shí)點(diǎn)都配有清晰的步驟說明和詳細(xì)的代碼解析。書中還融入了豐富的微課視頻資源,讓抽象的概念變得直觀易懂,讓復(fù)雜的操作變得觸手可及。無論是對(duì)游戲開發(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ù)是不可或缺的一步。隨著移動(dòng)互聯(lián)網(wǎng)的發(fā)展,移動(dòng)端 游戲日益盛行,據(jù)了解,Unity 開發(fā)者超過 300 萬,1/4 在中國,超過 5000 家游戲公司和工作室在 使用 Unity 開發(fā)。因此,學(xué)會(huì) Unity 游戲開發(fā),未來的職業(yè)發(fā)展將非?捎^。
Unity 到底是什么?為何如此受歡迎、市場占有率如此之高?Unity 是專業(yè)的游戲引擎,能夠創(chuàng)建 實(shí)時(shí)、可視化的 2D 和 3D 動(dòng)畫、游戲,被譽(yù)為 3D 手游的傳奇。Unity 可以創(chuàng)建虛擬的現(xiàn)實(shí)空間,可以 讓游戲玩家在虛擬的世界里盡情發(fā)揮,使心靈得到釋放。近年游戲開發(fā)迅速崛起,發(fā)展為獨(dú)具特色且 前景廣闊的行業(yè),市場需要以 Unity 技術(shù)作為支撐的游戲,企業(yè)需要 Unity 技術(shù)開發(fā)人才。因此,掌握 Unity 技術(shù)的人才需求量也會(huì)越來越大。 游戲產(chǎn)業(yè)作為一個(gè)新興產(chǎn)業(yè),從初期形成到如今的快速發(fā)展并迅速走向成熟時(shí)期,已經(jīng)成為文化 娛樂產(chǎn)業(yè)、網(wǎng)絡(luò)經(jīng)濟(jì)的重要組成部分。目前國內(nèi)的游戲研發(fā)人才缺口巨大,對(duì)移動(dòng)端技術(shù)開發(fā)人才的 需求非常迫切。
據(jù)數(shù)據(jù)顯示,目前我國對(duì)中高級(jí)游戲開發(fā)工程師的需求在 10 萬人以上,很多企業(yè)面臨招不到 工程師的問題。據(jù)統(tǒng)計(jì),游戲開發(fā)工程師平均月薪約為 20418 元。未來幾年在多種因素的影響下,預(yù)計(jì)中國游戲市場研發(fā)人員的薪資將繼續(xù)上漲。
本書編者具有多年一線開發(fā)經(jīng)驗(yàn),屬于國內(nèi)早期接觸并開發(fā) VR(Virtual Reality,虛擬現(xiàn)實(shí))游戲 的一批人,團(tuán)隊(duì)開發(fā)的VR游戲已經(jīng)進(jìn)入場館,反映良好。編者也是 CSDN 博客,主頁在 CSDN 擁有 340 萬訪問量,讓數(shù)百萬 Unity 開發(fā)者受益。
與現(xiàn)有教材相比,本書具有以下特點(diǎn)。
1.注重培養(yǎng)全棧式技能
本書解決了現(xiàn)有 Unity 教材在全棧式開發(fā)方面的不足,首先從 C#基礎(chǔ)講起,但沒有長篇大論地講述,而是篩選出 C#中在 Unity 開發(fā)時(shí)要用到的技術(shù);然后講解 Unity 基礎(chǔ);最后在實(shí)戰(zhàn)案例部分選擇 了兩個(gè)項(xiàng)目;一個(gè)是 Unity 游戲開發(fā)項(xiàng)目;另一個(gè)是數(shù)字孿生項(xiàng)目。
2.注重使用逐層深入的教學(xué)方式
本書通過逐層深入的教學(xué)方式,介紹開發(fā)流程和迭代過程,讓讀者知其然,也知其所以然。
3.注重使用實(shí)戰(zhàn)案例
本書中每一章都提供了豐富的實(shí)例,這些實(shí)例大多來自編者多年的工作和應(yīng)用軟件開發(fā)實(shí)踐,其中有些實(shí)例(如游戲、小程序等)具有較強(qiáng)的趣味性,可以激發(fā)讀者對(duì)程序設(shè)計(jì)的興趣。
本書資源及聯(lián)系方式
為方便讀者學(xué)習(xí),本書提供案例源文件,讀者請(qǐng)使用手機(jī)掃描資源包二維碼,將資源下載到計(jì)算機(jī)中學(xué)習(xí)使用。
本書在寫作過程中雖力求嚴(yán)謹(jǐn)細(xì)致,但由于時(shí)間與精力有限,書中疏漏之處在所難免。如果在閱讀過程中有任何疑問,可以掃描技術(shù)支持二維碼,與我們?nèi)〉寐?lián)系;也可以進(jìn)入讀者交流群,在群內(nèi)交流學(xué)習(xí),共同進(jìn)步。
致謝
在編寫本書時(shí),編者秉持“做的 Unity 教科書”的精神,努力在有限的篇幅中展現(xiàn)更多對(duì)讀者 有用的內(nèi)容,期望可以帶領(lǐng)讀者快速入門 Unity。
編寫本書占據(jù)了編者大部分的業(yè)余時(shí)間,因此本書的出版離不開編者家人的默默支持,在此向他們表示誠摯的感謝!同時(shí),也感謝出版社編輯的細(xì)致審校工作,是他們的辛勤工作了本書的順利 出版!
最后,祝愿各位讀者,事業(yè)順利,身體健康。
張 堯
2025 年 6 月
張堯,Unity3D領(lǐng)域優(yōu)質(zhì)創(chuàng)作者,精通C#,云原生入門級(jí)開發(fā)者認(rèn)證,助理工程師,CSDN2022年度博客之星,CSDN博客,華為云云享,InfoQ博主,阿里云博客。
目 錄
第 1 章 進(jìn)入 Unity 的世界 ························ 1
視頻講解:13 分鐘
1.1認(rèn)識(shí) 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 配置與運(yùn)行 ······························· 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 運(yùn)行 Unity 項(xiàng)目 ································· 19
1.3.1 新建 Unity 項(xiàng)目························ 19
1.3.2 打開 Unity 項(xiàng)目························ 20
1.3.3 運(yùn)行 Unity 項(xiàng)目························ 21
1.3.4 新建 C#腳本 ···························· 22
1.3.5 初識(shí) 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 動(dòng)畫 ·························· 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 實(shí)例化預(yù)制體 ·························· 61
代碼 3-5 實(shí)例化預(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 點(diǎn)光源 ··································· 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 為對(duì)象添加坐標(biāo)點(diǎn)位置 ········· 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 動(dòng)態(tài)添加監(jiān)聽事件 ··············· 79
4.4.5 UGUI——Toggle ······················ 79
代碼 4-4 Toggle 組件監(jiān)聽函數(shù)測試 代碼 ································· 80
代碼 4-5 通過代碼動(dòng)態(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 組件的使用實(shí)例 ···· 86
4.4.9 UGUI——InputField ·················· 87
代碼 4-8 修改腳本,添加單擊登錄按鈕后顯示賬號(hào)和密碼功能 ········· 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 自動(dòng)布局 ················· 92
代碼 4-10 使用默認(rèn) Rect 定位方式 排列 Label ························ 92
代碼 4-11 使用 GUILayout 自動(dòng)布局 ···· 93
4.6 Unity 的動(dòng)畫系統(tǒng) ······························ 93
4.6.1 導(dǎo)入動(dòng)畫模型 ·························· 93
4.6.2 切換動(dòng)畫 ································ 96
4.6.3 控制動(dòng)畫的播放 ······················· 97
代碼 4-12 通過控制動(dòng)畫參數(shù)切換動(dòng)畫 ··· 98
4.7 本章小結(jié) ·································