發表於2024-12-22
Unity入門經典
引用完整示例項目,快速掌握Unity遊戲開發平颱
免費提供書中所有源代碼
熟練掌握基於2D和3D驅動的遊戲技能
涵蓋Unity5.0
本書幫助讀者使用Unity遊戲開發平颱構建成功的遊戲。 你將使用強大的C#語言、Unity的可視化工作流工具和的渲染引擎來構建和部署移動、桌麵和控製颱遊戲。Unity的單一基於代碼的方式小化瞭在開發工具間切換的影響,並將你的關注點集中在製作美妙的交互體驗上。 本書教授你如何編寫和部署遊戲。你將從頭開始掌握Unity的工具集,書中介紹瞭從應用編碼者到遊戲開發者所需的技能。每個示例項目都闡述瞭特定的Unity特性和遊戲開發策略。閱讀完本書內容和完成書中練習後,你將掌握創建生動的基於2D和3D驅動的遊戲應用的各方麵技能。 主要內容 ◆ 編寫跑動、跳躍和交互的角色 ◆ 構建管理遊戲狀態的代碼架構 ◆ 將遊戲連接到互聯網以下載動態數據 ◆ 將遊戲部署到平颱(包括網頁和移動等) ◆ 涵蓋Unity 5.0
Joseph Hocking是一位交互式媒體開發方麵的軟件工程師。他就職於Synapse Games公司並在芝加哥哥倫比亞學院教授遊戲開發課程。
第Ⅰ部分起步
第1章初識Unity3
1.1為什麼Unity如此優秀4
1.1.1Unity的優勢4
1.1.2要意識到的缺點5
1.1.3使用Unity構建的遊戲案例6
1.2如何使用Unity9
1.2.1Scene視圖、Game視圖和工具欄10
1.2.2使用鼠標和鍵盤11
1.2.3Hierarchy標簽和Inspector12
1.2.4Project和Console標簽12
1.3開始使用Unity編程13
1.3.1代碼在Unity中是如何運行的:腳本組件14
1.3.2使用MonoDevelop,跨平颱的IDE15
1.3.3打印到控製颱:HelloWorld!16
1.4小結18
第2章構建一個讓你置身3D空間的演示19
2.1在開始之前20
2.1.1對項目做計劃20
2.1.2瞭解3D坐標空間21
2.2開始項目:在場景中放置對象22
2.2.1第二步:地闆、外牆和內牆22
2.2.2燈光和攝像機25
2.2.3玩傢的碰撞器和視口26
2.3讓東西移動:應用變換的腳本27
2.3.1圖示說明如何通過編程實現鏇轉27
2.3.2編寫代碼實現圖中演示的運動27
2.3.3本地和全局坐標空間29
2.4用於觀察周圍的組件腳本:MouseLook30
2.4.1跟蹤鼠標運動的水平鏇轉31
2.4.2在一定範圍內的垂直鏇轉32
2.4.3同時水平和垂直鏇轉33
2.5鍵盤輸入組件:第一人稱控件36
2.5.1響應按下的鍵36
2.5.2設置獨立於計算機運行速度的運動速率37
2.5.3為瞭碰撞檢測,移動CharacterController38
2.5.4調整組件為走路而不是飛翔39
2.6小結41
第3章為3D遊戲添加敵人和子彈43
3.1通過射綫射擊44
3.1.1什麼是射綫發射44
3.1.2使用命令ScreenPointToRay來發射45
3.1.3為準心和擊中點添加可視化提示46
3.2腳本化反應的目標49
3.2.1確定被擊中的對象49
3.2.2警告目標它被擊中50
3.3基本漫遊AI52
3.3.1圖解基礎AI的工作原理52
3.3.2使用射綫發射發現障礙物52
3.3.3跟蹤角色狀態54
3.4産生敵人預設55
3.4.1什麼是預設55
3.4.2創建敵人預設56
3.4.3在不可見的SceneController中實例化57
3.5通過實例化對象進行射擊59
3.5.1創建子彈預設59
3.5.2發射子彈並和目標碰撞60
3.5.3傷害玩傢63
3.6小結63
第4章為遊戲開發圖形65
4.1瞭解美術資源65
4.2構建基礎3D場景:白盒67
4.2.1白盒的解釋68
4.2.2為關卡繪製地闆平麵圖68
4.2.3根據平麵圖布局幾何體69
4.3使用2D圖像給場景貼圖70
4.3.1選擇文件格式71
4.3.2導入圖像文件72
4.3.3應用圖像73
4.4使用貼圖圖像産生天空視覺效果75
4.4.1什麼是天空盒75
4.4.2創建一個新天空盒材質76
4.5使用自定義3D模型77
4.5.1選擇文件格式78
4.5.2導齣和導入模型79
4.6使用粒子係統創建效果81
4.6.1調整默認效果的參數82
4.6.2為火焰應用新貼圖83
4.6.3將粒子效果附加到3D對象上84
4.7小結85
第Ⅱ部分輕鬆工作
第5章使用Unity新的2D功能構建一款記憶力遊戲89
5.1設置2D圖形90
5.1.1為項目做準備90
5.1.2顯示2D圖像(亦稱精靈)92
5.1.3將攝像機切換為2D模式94
5.2構建卡片對象並讓它響應單擊95
5.2.1從精靈構建對象95
5.2.2鼠標輸入代碼96
5.2.3當單擊時顯示卡片96
5.3顯示不同的卡片圖像97
5.3.1通過程序加載圖像97
5.3.2通過不可見的SceneController來設置圖像98
5.3.3實例化一個網格的卡片100
5.3.4打亂卡片101
5.4實現匹配和匹配得分103
5.4.1保存並比較翻開的卡片104
5.4.2隱藏錯誤卡片104
5.4.3顯示積分的文本105
5.5重啓按鈕106
5.5.1使用SendMessage編寫UIButton組件107
5.5.2從SceneController中調用LoadLevel109
5.6小結110
第6章在3D遊戲中放置2D圖形用戶界麵111
6.1在開始寫代碼之前......112
6.1.1直接模式GUI還是高級2D界麵112
6.1.2規劃布局113
6.1.3導入UI圖像114
6.2設置GUI顯示114
6.2.1為界麵創建畫布115
6.2.2按鈕、圖像和文本標簽116
6.2.3控製UI元素的位置118
6.3編寫UI中的交互119
6.3.1編寫不可見的UIController120
6.3.2創建彈齣窗口121
6.3.3使用滑動條和輸入域設置值124
6.4通過響應事件更新遊戲126
6.4.1集成事件係統127
6.4.2從場景中廣播和偵聽事件127
6.4.3從HUD廣播和偵聽事件128
6.5小結130
第7章創建第三人稱3D遊戲:玩傢移動和動畫131
7.1調整攝像機視圖為第三人稱視角133
7.1.1導入一個用於觀察的角色133
7.1.2將陰影添加到場景134
7.1.3攝像機環繞玩傢角色135
7.2編寫程序控製camera-relative的移動137
7.2.1鏇轉角色,以朝嚮移動方嚮138
7.2.2朝著方嚮嚮前移動140
7.3實現跳躍動作141
7.3.1應用垂直速度和加速度142
7.3.2修改地麵檢測來處理邊緣和斜坡143
7.4設置玩傢角色上的動畫146
7.4.1在導入的模型上定義動畫剪輯148
7.4.2為動畫創建動畫控製器149
7.4.3編寫操作Animator組件的代碼153
7.5小結154
第8章在遊戲中添加交互設施和物件155
8.1創建門和其他設施156
8.1.1由按鍵控製開/關的門156
8.1.2在開門之前檢查距離和朝嚮157
8.1.3創建一個變色監控器159
8.2通過碰撞與對象交互160
8.2.1和具有物理功能的障礙物碰撞160
8.2.2用一個壓力闆來觸發門161
8.2.3收集當前關卡遊戲中分散的物件163
8.3管理倉庫數據和遊戲狀態165
8.3.1設置玩傢和倉庫管理器165
8.3.2編程實現遊戲管理器166
8.3.3把物品存儲在集閤對象中:List與Dictionary170
8.4使用和裝備物品的倉庫UI173
8.4.1在UI中顯示倉庫物品173
8.4.2裝備一個用來開門的鑰匙175
8.4.3通過使用血量包來恢復玩傢的血量177
8.5小結178
第Ⅲ部分衝刺階段
第9章將遊戲連接到互聯網181
9.1創建戶外場景182
9.1.1使用天空盒生成天空視覺效果182
9.1.2通過代碼設置大氣環境183
9.2從互聯網服務下載天氣數據185
9.2.1使用協程請求WWW數據188
9.2.2解析XML192
9.2.3解析JSON193
9.2.4基於天氣數據影響場景195
9.3添加一個網絡布告欄196
9.3.1從互聯網加載圖像196
9.3.2在布告欄上顯示圖像199
9.3.3緩存下載的圖像以供重用200
9.4將數據發送到Web服務器201
9.4.1跟蹤當前的天氣:發送post請求202
9.4.2PHP中的服務器端代碼204
9.5小結204
第10章播放音頻:音效和音樂205
10.1導入音效206
10.1.1所支持的文件格式206
10.1.2導入音頻文件207
10.2播放音效208
10.2.1音頻剪輯、音源和聲音偵聽器208
10.2.2設定一個循環聲音209
10.2.3從代碼觸發音效210
10.3音頻控製接口211
10.3.1建立中心AudioManager212
10.3.2音量控製UI214
10.3.3播放UI聲音217
10.4背景音樂218
10.4.1播放循環音樂218
10.4.2獨立控製音樂的音量221
10.4.3歌麯間的淡入淡齣223
10.5小結226
第11章將各部分整閤為一個完整的遊戲227
11.1再次利用項目來構建角色扮演RPG228
11.1.1將多個項目的資源和代碼裝配在一起228
11.1.2編寫指嚮-單擊的控件:移動和設備231
11.1.3使用新界麵替換舊GUI235
11.2開發總體的遊戲結構241
11.2.1控製任務流和多關卡242
11.2.2通過到達退齣條件完成一個關卡245
11.2.3當被敵人捕捉時關卡失敗247
11.3處理玩傢遊戲過程中的進度249
11.3.1保存並加載玩傢進度249
11.3.2通過完成三個關卡打敗遊戲253
11.4小結255
第12章將遊戲部署到玩傢的設備255
12.1構建桌麵環境:Windows、Mac和Linux259
12.1.1構建應用259
12.1.2調整PlayerSettings:設置遊戲的名稱和圖標260
12.1.3平颱依賴的編譯261
12.2為Web構建遊戲262
12.2.1UnityPlayer和HTML/WebGL262
12.2.2構建Unity文件和一個測試Web頁麵262
12.2.3與瀏覽器中的JavaScript通信263
12.3構建移動應用的平颱:iOS和Android264
12.3.1設置構建工具265
12.3.2貼圖壓縮268
12.3.3開發插件269
12.4小結277
附錄A場景導航和鍵盤快捷鍵279
A.1使用鼠標進行場景導航279
A.2一般使用鍵盤快捷鍵280
附錄B與Unity一同使用的外部工具281
B.1編程工具281
B.1.1VisualStudio281
B.1.2Xcode281
B.1.3AndroidSDK282
B.1.4SVN、Git或Mercurial282
B.23D美術應用282
B.2.1Maya282
B.2.23dsMax282
B.2.3Blender283
B.32D圖像編輯器283
B.3.1Photoshop283
B.3.2GIMP283
B.3.3TexturePacker283
B.4音頻軟件283
B.4.1ProTools284
B.4.2Audacity284
附錄C在Blender中建模一個闆凳285
C.1構建網格幾何體285
C.2模型貼圖映射288
附錄D在綫學習資源293
D.1附加的指南293
D.2代碼庫294
後序297
序
我在1982年就開始進行遊戲編程。那時候很睏難,我們沒有互聯網。資源限製為少數糟糕的書籍和雜誌,它們提供瞭迷人但混亂的代碼片段,而對於遊戲引擎,幾乎沒有可以參考的資料!編碼遊戲是一場大規模的艱苦戰爭。
非常羨慕你們可以閱讀《Unity5實戰使用C#和Unity開發多平颱遊戲》,Unity引擎已經為許多人打開瞭遊戲編程的大門。Unity已經成為一個強大專業的遊戲引擎,初學者易於掌握。
編輯器的可接近指的是通過恰當的引導可以很快上手。有一次,我花時間參加瞭一個由魔術師錶演的馬戲團。魔術師很快帶我入戲並幫助我成為一個齣色的錶演者。魔術師說道:“當你站在颱上,你需要許下‘我不會浪費你們時間’的承諾”。
我最喜歡《Unity5實戰使用C#和Unity開發多平颱遊戲》的是“實踐”部分。JosephHocking沒有浪費你們的寶貴時間,並讓你們的編碼速度更快——不是編寫無意義的代碼,而是你可以理解和構建的有趣代碼,因為他知道你不僅隻是想閱讀此書,不僅隻是想編寫這些示例——你想要編寫自己的遊戲。
在本書的指導下,你將很快能上手,遠超乎你自己的期望。請隨著Joseph的步伐學習,但當你準備好之後,不要羞於和他的學習路綫分道揚鑣並規劃自己的學習路綫。跳到你最感興趣的部分——嘗試實驗,請大膽而勇敢地進行嘗試!如果你迷失瞭方嚮,還可以返迴到本書中。
我們不必在此序中浪費時間——接下來的整個遊戲都在等著你開發!在你的日曆上標記一下今天的日期,因為今天發生瞭翻天覆地的變化。你應該永遠記住今天是你開始製作遊戲的第一天。
JesseSchell
SchellGames的CEO
TheArtofGameDesign一書的作者
前言
我從事遊戲編寫工作已經有較長一段時間瞭,但最近纔開始使用Unity。當我開始開發遊戲時Unity尚未齣現,它的第一個版本在2005年發布。從一開始,它就承諾要作為遊戲開發工具,但直到一些新版本齣現之前它並沒有如自己許諾的那般。尤其是,類似iOS和Android(共同稱為“移動”平颱)這樣的平颱直到後來纔齣現,而這些平颱為Unity的日益發展添加瞭重要的元素。
最開始,我將Unity視為一個有趣的開發工具,我關注它,但並不真正使用它。這段時間,我在為桌麵計算機、網站編寫遊戲,為各種類型的客戶端開發項目。我曾用類似Blitz3D和Flash這樣的工具來編程,且感覺使用起來很方便,但要受到諸多限製。隨著這些工具開始衰落,我就一直在尋找開發遊戲的更好方式。
我開始圍繞Unity的版本3進行體驗,後來當SynapseGames(我現在工作的公司)開始開發移動時,我完全切換到Unity進行遊戲開發工作。首先,我為Synapse開發網頁遊戲,但事實上我們將它們全部轉換為移動遊戲。而接著我們周而復始地將網頁遊戲發布為移動遊戲,因為Unity允許我們部署到網頁和移動平颱,所有需要的隻是同一個代碼庫!
我一直認為分享知識很重要,而我也已經教授遊戲開發課程好幾年。我這麼做的部分原因要歸因於我的很多導師和老師的錶率作用(偶然,你可能甚至聽說過我的一位老師,因為他是一位催人奮進的好老師:RandyPausch,他在2008年去世之前還講授瞭簡短的最後一課)。我已經在很多學校授過課,而我一直想寫一本關於遊戲開發的書籍。
在許多方麵,本書所寫的是我第一次學習Unity時所期望齣現的教學內容。Unity的眾多優點之一是有大量可用的巨大有價值的學習資源,但這些資源趨嚮於以不集中的碎片(諸如腳本指引或獨立的教程)形式呈現並需要你很好地挖掘齣所需要的內容。本書針對的讀者群是那些已經知道瞭如何編程,但還是Unity新手,並且可能也是遊戲開發新手的讀者。書中項目的選擇通過快速迭代不同項目以反映我獲得技能的經驗和秘密。
為瞭學習如何使用Unity開發遊戲,你正在開始一次激動人心的冒險之旅。對於我,學習如何開發遊戲則意味著進行一場激戰。但對你而言,擁有瞭本書則意味著擁有瞭一份清晰簡明的學習資源。
Unity 5實戰 使用C#和Unity開發多平颱遊戲 下載 mobi pdf epub txt 電子書 格式 2024
Unity 5實戰 使用C#和Unity開發多平颱遊戲 下載 mobi epub pdf 電子書此用戶未及時評價,係統默認好評。
評分總體來說還可以,沒塑封,書有一點點磨損,但是代碼下不到。。。很尷尬。有一個嚴重的問題,書是黑白的,圖效果不好,大傢買的時候注意一下
評分很不錯喜歡
評分網站源碼下載鏈接失效,紙質像復印版
評分翻譯不好,毀瞭一本好書。。。。。。。。。。。。。。
評分好垃圾的一本書 哎 啥子水平哦 我這種自認小白的人看瞭都蛋疼 毫無實用性的書 當初還是看瞭譯者的博客推薦纔買來看看 失望.
評分很棒的書,對初學者很有用。
評分此用戶未及時評價,係統默認好評。
評分翻譯一塌糊塗, 爛的不能再爛, 嚴重影響尤其後麵幾章節, 趕工的痕跡非常明顯。
Unity 5實戰 使用C#和Unity開發多平颱遊戲 mobi epub pdf txt 電子書 格式下載 2024