許多初學者在接觸Unity遊戲引擎時,往往會覺得系統龐大水而無法掌握學習方向。尤其是程式設計部分,更讓許多人覺得無從下手,即便閱讀大量書籍與網路文獻亦無法具體改善。為了解決學習困難的問題,作者以多年教學經驗,建立從零開始的學習路徑,讓初學者可以透過本書,輕易學習Unity程式設計,並且在閱讀本書之後,擁有自行學習的能力。閱讀本書並不需要任何程式基礎,只要從頭開始照著書本案例一步一步練習,就可以具備基礎Unity遊戲程式設計能力。本書以初學者為出發點,以完整的遊戲程式開發過程為學習路徑,輔以大量圖片說明,讓沒有程式基礎的讀者,可以由淺而深的學習Unity程式設計。本書內容經過實際課堂教學驗證與完善,並獲得學生一致好評,值得向初學者推薦。
本書附有遊戲專案檔光碟,可供讀者參考。
作者E-mail為 sam-cc@umail.hinet.net ,對於本書內容有任何疑問,歡迎透過電子郵件與作者連絡。
作者簡介:
盛介中
交大資訊管理研究所博士
本書作者從事程式設計領域工作多年,曾經在國立交通大學管理學院執教程式設計課程,獲得學生一致好評。現任教於育達科技大學多媒體與遊戲設計系,教學經驗豐富且風評極佳。由於廣泛接觸各種不同背景與程度的學生,因此讓不同程度或毫無基礎的初學者學會程式設計,有獨特的見解與教學方式。
邱筱雅
交大資訊管理研究所博士
曾經於竹科科技廠擔任系統管理人員、資料庫管理師、程式設計專案人員多年。之後任職於大專院校資訊科系,擁有豐富的資訊相關領域教學經驗。
章節試閱
第一章 製作第一個遊戲專案
1.1 前言
本書主要目的是以圖解說明方式,讓讀者輕鬆學習Unity遊戲開發技巧,以及Unity C#程式語言基礎技能,以建立遊戲程式開發之自我學習能力。為了增進學習效率,本書將減少不必要的文字描述,並大量使用圖解,讓讀者迅速學會各項基本技巧。
本書包含三個完整遊戲設計範例,第一個範例是簡單2D遊戲,主要目的是讓大家熟悉基本Unity編輯器操作,以及建立基礎C#程式寫作能力。第二個範例則是簡單3D近戰遊戲,介紹進階角色控制以及更深入的程式開發練習。第三個範例是簡單的射擊遊戲,除了加強第一與第三人稱控制之外,還會導入一些機關製作、小地圖、音訊混合器控制等實用內容。
以上三個範例內容的先後順序,是以學習者從零開始逐漸建構完整遊戲的過程來安排。遊戲開發過程以及程式設計的範例,並不是採用一次就寫好的方式,而是由簡單的開始,隨著遊戲的需要而逐漸增加。整個範例的介紹流程,乃是依循初學者從頭開始學習的路徑,因此不建議省略任何一個流程。讀者只需要依照本書進度,從頭開始閱讀並動手實作,就一定能夠循序漸進的完成範例,並且具備從頭開始開發遊戲程式的能力。
遊戲開發通常包含兩大不同技能的工作者,一是遊戲美術師,負責繪製場景、角色以及製作各種特效;二是遊戲程式設計師,負責撰寫程式,以便讓場景、人物與使用者發生互動,且能順利執行遊戲。本書內容重點著重在遊戲程式設計方面,以培養遊戲程式開發者為主要目標。
Unity支援C# Script程式語言,程式開發環境預設使用MonoDevelope,或選擇安裝Microsoft Visual Studio Community。本書推薦使用Visual Studio來進行學習,它不但支援中文開發環境,而且程式錯誤訊息也是中文,可以大幅減輕學習壓力。使用MAC進行Unity程式設計的開發者,預設也使用MonoDevelope做為程式開發工具,但程式碼並不會因為作業系統不同而有所不同。
Visual Studio 另一個優點是它的程式碼自動完成功能十分強大,有助程式設計師快速找到想要使用的命令,避免因為英文單字拼錯而發生錯誤。站在初學者的立場,使用Visual Studio配合Unity來撰寫C#程式,可以節省大量學習時間。
許多人覺得程式設計相當困難,部分原因是因為程式語言幾乎都使用英文,因此對一些懼怕英文的學習者來說,充滿了各種學習障礙,只要克服英文問題,大部分學習者都能學會程式設計。
在學習程式設計時要先有一個觀念,那就是程式語言的英文命令一定要能背誦,並且充份理解它的含意。當學習者看到新的命令時,第一件工作是要記憶英文單字的意義,然後再開始練習如何使用,將能有效增進學習效果。或許剛開始學習時會覺得有好多英文字要背,但只要持之以恆,就能逐漸克服因為英文而導致的學習障礙。
為了讓初學者可以更輕鬆地學習程式語言,本書所有程式碼的變數、方法、類別以及物件等名稱將採用中文命名。因此程式碼當中的英文部分屬於程式語言命令,或者是Unity遊戲引擎提供的功能,而中文部分則是來自於使用者自行命名。本書程式碼採用中文變數命名方式,目的是增加學習效果,但是業界則多半使用英文命名,這是讀者需要特別注意的地方。
第一章 製作第一個遊戲專案
1.1 前言
本書主要目的是以圖解說明方式,讓讀者輕鬆學習Unity遊戲開發技巧,以及Unity C#程式語言基礎技能,以建立遊戲程式開發之自我學習能力。為了增進學習效率,本書將減少不必要的文字描述,並大量使用圖解,讓讀者迅速學會各項基本技巧。
本書包含三個完整遊戲設計範例,第一個範例是簡單2D遊戲,主要目的是讓大家熟悉基本Unity編輯器操作,以及建立基礎C#程式寫作能力。第二個範例則是簡單3D近戰遊戲,介紹進階角色控制以及更深入的程式開發練習。第三個範例是簡單的射擊遊戲,除了加強第一與第三人...
作者序
序言
許多初學者在接觸 Unity 遊戲引擎時,往往一頭霧水而無法掌握學習方向,尤其是程式設計部分,更讓人覺得無從下手,即便閱讀大量書籍與網路文獻亦無法具體改善。
為了解決這個問題,本書作者以多年教學經驗,建立從零開始的學習路徑,讓初學者可以透過本書,輕易學習 Unity 程式設計,並且在閱讀本書之後,擁有自行學習的能力。
閱讀本書並不需要任何程式基礎,只要從頭開始照著書本案例一步一步練習,就可以學會基礎的 Unity 遊戲程式設計能力。本書以初學者為出發點,以完整的遊戲程式開發過程為學習路徑,輔以大量圖片說明,讓沒有程式基礎的讀者,可以由淺而深的學習 Unity 程式設計。
本書內容經過實際課堂教學驗證與完善,並獲得學生一致好評,值得向初學者推薦。
序言
許多初學者在接觸 Unity 遊戲引擎時,往往一頭霧水而無法掌握學習方向,尤其是程式設計部分,更讓人覺得無從下手,即便閱讀大量書籍與網路文獻亦無法具體改善。
為了解決這個問題,本書作者以多年教學經驗,建立從零開始的學習路徑,讓初學者可以透過本書,輕易學習 Unity 程式設計,並且在閱讀本書之後,擁有自行學習的能力。
閱讀本書並不需要任何程式基礎,只要從頭開始照著書本案例一步一步練習,就可以學會基礎的 Unity 遊戲程式設計能力。本書以初學者為出發點,以完整的遊戲程式開發過程為學習路徑,輔以大量圖片說明,讓...
目錄
第一部分 2D遊戲與Unity C#基礎
第一章 製作第一個遊戲專案
1.1 前言
1.2 安裝Unity
1.3 編輯器概觀
1.4 改變編輯器的外觀
1.5 建立專案
1.6 資源商店簡介
1.7 建立場景
1.8 建立遊戲物件
1.9 2D模式的運作方式
1.10 排序圖層的概念
1.11 遊戲執行與相機設定
1.12 物理控制與Rigidbody
第二章 Unity C# 簡介
2.1 為遊戲物件加入C#程式
2.2 設定程式編輯器
2.3 C#的通則
2.4 Visual Studio自動完成功能簡介
2.5 Unity的線上文件
2.6 編輯第一個C#程式
2.7 UI物件簡介
2.8 程式與遊戲物件
2.9 敘述
2.10 資料型態
2.11 類別與物件
2.12 運算元與運算子
2.13 型態轉換
第三章 常用的C#命令
3.1 條件判斷命令
3.2 按鈕與事件
3.3 多重條件判斷
3.4 選擇條件
3.5 for迴圈
3.6 while迴圈
3.7 do – while迴圈
3.8 陣列
第四章 完成第一個2D遊戲專案
4.1 Unity C#程式實作
4.2 使用碰撞器
4.3 按下按鍵就可以移動與停止的控制方式
4.4 旋轉物體為遊戲添加樂趣
4.5 利用Rigidbody讓物體可以互相碰撞
4.6 讓物體消失
4.7 製作Prefab預製件
4.8 程式控制攝影機
4.9 使用者界面與字型
4.10 遊戲執行時期的UI控制
4.11 進階─讓石頭復活
第二部分 3D近戰遊戲
第五章 動畫控制器基礎
5.1 建立專案
5.2 由資源商店導入遊戲資源
5.3 建立主場景
5.4 角色匯入
5.5 設定攝影機位置
5.6 加入動畫控制器
5.7 為動畫控制器加入新動畫
5.8 規劃動畫控制器參數
5.9 狀態過渡與控制器參數
5.10 利用程式操控動畫控制器
5.11 解決畫面晃動問題
第六章 動畫控制器進階
6.1 角色控制器簡介
6.2 自行控制角色移動
6.3 動畫控制器進階
6.4 動畫混合樹
6.5 2D動畫混合樹
6.6 加入攻擊動畫
第七章 特效處理
7.1 動畫事件
7.2 播放特效
7.3 播放音效
7.4 製作氣功彈
7.5 利用動畫事件發射氣功彈
7.6 為移動中的物體加上音效
7.7 控制物體在一段時間後自動消失
第八章 碰撞偵測
8.1 為物體加上碰撞效果
8.2 控制物體在碰撞後自動消失
8.3 碰撞器簡介
8.4 使用剛體
8.5 新增敵人
第九章 導航與自動控制
9.1 為敵人設定導航功能
9.2 動態物體與靜態物體
9.3 剛體在角色控制時要注意的事項
9.4 導航動畫控制
9.5 自動停止
9.6 敵人自動攻擊
9.7 傷害輸出與扣血
9.8 播放擊中效果
9.9 顯示被擊中動畫
9.10 控制死亡動作
9.11 布偶系統Ragdoll(選讀)
9.12 程式碼拆解
9.13 自動巡邏
第十章 角色死亡處理與最後修飾
10.1 處理主角死亡動畫
10.2 建立主角血條
10.3 連結扣血與血條
10.4 製作敵人血條
10.5 為主角加入被擊中效果
10.6 為角色增加回血功能
10.7 建立可以反覆使用的Prefab預製件
10.8 加上使用者界面
10.9 最後修飾
10.10 補充—使用武器
第三部分 3D射擊遊戲
第十一章 移動與旋轉
11.1 建立新專案
11.2 建立主場景
11.3 加入主角與動畫控制器
11.4 播放角色動畫
11.5 移動控制的五種方法
11.6 簡單移動
11.7 角色控制器移動
11.8 剛體移動
11.9 物理質材
11.10 控制旋轉
第十二章 第一與第三人稱控制
12.1 攝影機跟隨
12.2 第一人稱控制
12.3 第一與第三人稱切換
12.4 第三人稱滑鼠旋轉
12.5 加入敵人
12.6 為敵人加入導航
12.7 設定敵人動畫
第十三章 射擊效果
13.1 主角扣血
13.2 播放主角死亡動畫
13.3 完成敵人動畫控制器
13.4 製作主角血條
13.5 加入射擊火光效果
13.6 加入射擊射線效果
13.7 射擊判定
13.8 增加射擊亮光
13.9 敵人扣血與死亡
13.10 增加擊中效果
13.11 動畫事件錯誤訊息
第十四章 雜項修飾
14.1 添加音效
14.2 建立預製件prefab
14.3 動態生成敵人
14.4 為敵人加上燈光效果
14.5 停止敵人追擊
14.6 擊斃敵人後的錯誤訊息
14.7 解決主角掉出邊界的問題
14.8 關閉冗餘Audio Listener
14.9 加入扣血提示
第十五章 小地圖與混音器
15.1 製作小地圖
15.2 製作地圖標記
15.3 加入音訊混合器
15.4 程式控制音訊混合器
15.5 製作音訊控制面板
15.6 製作音訊控制程式
第十六章 機關製作
16.1 機關製作—自動燈光
16.2 機關製作—升降台
16.3 動畫編輯器
16.4 錄製動畫
16.5 利用拷貝功能製作下降動畫
16.6 修改升降台動畫控制器
16.7 程式控制升降台機關
16.8 製作準星
第一部分 2D遊戲與Unity C#基礎
第一章 製作第一個遊戲專案
1.1 前言
1.2 安裝Unity
1.3 編輯器概觀
1.4 改變編輯器的外觀
1.5 建立專案
1.6 資源商店簡介
1.7 建立場景
1.8 建立遊戲物件
1.9 2D模式的運作方式
1.10 排序圖層的概念
1.11 遊戲執行與相機設定
1.12 物理控制與Rigidbody
第二章 Unity C# 簡介
2.1 為遊戲物件加入C#程式
2.2 設定程式編輯器
2.3 C#的通則
2.4 Visual Studio自動完成功能簡介
2.5 Unity的線上文件
2.6 編輯第一個C#程式
2.7 UI物件簡介
2.8 程式與遊戲物...