本書為作者十幾年程式與遊戲開發教學的匯總之一,目標在於帶領學習者,從零開始,隨著章節的展開,很自然且輕鬆的製作出第一支遊戲程式。您可以將本書當作教科書,也可以將本書當作輕鬆的教學講義,不知不覺中,您就學會了整個遊戲程式的製作。
作者簡介:
盛介中博士
從事程式設計領域工作多年,並曾經於國立交通大學管理學院執教程式設計課程數年後,現為育達科技大學多媒體與遊戲設計系專任助理教授,教學經驗豐富且風評極佳。由於廣泛接觸各種不同背景與程度的學生,因此對於如何讓不同程度或毫無基礎的初學者學會程式設計,有獨特的見解與教學方式。
邱筱雅老師
交通大學資訊管理系博士,現任育達科大資管系副教授。專長為資料庫數據分析、社群媒體應用程式設計。喜愛旅遊攝影、美食研究與新媒體應用。
章節試閱
第一部分我們以簡單的2D遊戲,帶領大家了解UNITY這個世界最普及的遊戲軟體。UNITY是全世界電腦遊戲、手機遊戲、虛擬實境
(VR)與擴增實境(AR)開發,最普及的開發工具,其擁有許多優點:
1. 開發工具免費。
2. 擁有海量的線上素材庫(Asset Store)可供大家尋找製作遊戲所需要的美工素材,有許多素材是免費的。
3. 操作直覺,可以輕易做出跨平台遊戲。
4. 以遊戲開發方式學習程式邏輯,使用C#語言,其乃C語言系列語法,於工商業界使用良多,可以順便學習,輕鬆跨越電腦語言障礙。
第一章
UNITY概述與素材庫入門
UNITY程式設計使用「專案」(Project)方式來包裝單一個遊戲開發,單一專案就是一個遊戲,當中包含遊戲物件、美工圖片、動畫、聲音、動作程式。因此我們下載並且安裝UNITY後,會先開啟一個2D專案來做說明。
UNITY免費下載網站:https://store.unity.com/
請選擇Personal Free版本點開下載,安裝完成即可。
UNITY改版速度很快,使用介面會因版本差異而略有不同,但操作方式幾乎相同,頂多位置調整一點點。如果您於學習時,按照本書程序,發現介面位置不一樣,請您前後左右自行尋找一下即可。
本書主要目的是希望讓毫無程式基礎的讀者,能夠輕鬆學習Unity C#程式語言,並且具備自行學習的能力。為了增進學習效率,本書將減少不必要的文字描述,並且大量使用圖解方式,讓讀者迅速學會程式語言的各項技巧。
1.1 Unity程式設計
遊戲開發通常包含兩大不同技能的工作者,一是遊戲美術師,負責繪製場景、角色、以及製作各種特效;二是遊戲程式設計師,負責撰寫程式,以便讓場景、人物與使用者發生互動,且能順利執行遊戲。
Unity支援C# Script以及Unity Script這兩種程式語言,程式開發環境預設使用MonoDevelope,或選擇安裝Microsoft Visual Studio Community。本書推薦使用Visual Studio來進行學習,它不但支援中文開發環境,而且程式錯誤訊息也是中文,可以大幅減輕學習壓力。然而使用MAC進行Unity程式設計的開發者,就只能使用MonoDevelope做為程式開發工具,但程式碼並不會因此而有所不同。
Visual Studio另一個優點是它的程式碼自動完成功能十分強大,有助程式設計師快速找到想要使用的命令,避免因為英文單字拼錯而發生錯誤。站在初學者的立場來看,使用Visual Studio配合Unity來撰寫C#程式,可以節省大量學習時間。
許多人覺得程式設計相當困難,部分原因是因為程式語言幾乎都使用英文,因此對一些懼怕英文的學習者來說,充滿了各種學習障礙,只要克服英文問題,大部分學習者都能學會程式設計。
在學習程式設計時要先有一個觀念,那就是程式語言的英文命令一定要能背誦,並且充分理解它的含意。當學習者看到新的命令時,第一件工作是要記憶英文單字的意義,然後再開始練習如何使用,將能有效增進學習效果。或許剛開始學習時會覺得有好多英文字要背,但只要持之以恆,就能逐漸克服因為英文而導致的學習障礙。
為了讓初學者可以更輕鬆地學習程式語言,本書所有程式碼的變數、方法、類別以及物件等名稱將採用中文命名。因此,程式碼當中的英文部分屬於程式語言命令,或者是Unity遊戲引擎提供的功能,而中文部分則是來自於使用者自行命名。本書程式碼採用中文變數命名方式可以加速學習效果,但是業界則多半使用英文命名,這是讀者需要注意的地方。
1.2 安裝UNITY
本書採用Visual Studio Community做為程式開發工具,建議先安裝免費之Visual Studio Community,然後再安裝Unity。
Unity遊戲引擎可以至簡體中文官網https://unity3d.com/cn下載並安裝,建議先下載免費版安裝即可。第一次執行Unity時,會被要求輸入帳號、密碼:
讀者可以自行選擇以google或facebook帳號登入,也可以點選create one連結以便到官方網頁建立帳號。建立帳號後,在此畫面當中輸入帳號(Email*)以及密碼(Password*),按下 按鍵就可以登入。如果不想建立帳號,或是沒有google與facebook帳號的話,也可以點選 直接使用Unity編輯器。
第一部分我們以簡單的2D遊戲,帶領大家了解UNITY這個世界最普及的遊戲軟體。UNITY是全世界電腦遊戲、手機遊戲、虛擬實境
(VR)與擴增實境(AR)開發,最普及的開發工具,其擁有許多優點:
1. 開發工具免費。
2. 擁有海量的線上素材庫(Asset Store)可供大家尋找製作遊戲所需要的美工素材,有許多素材是免費的。
3. 操作直覺,可以輕易做出跨平台遊戲。
4. 以遊戲開發方式學習程式邏輯,使用C#語言,其乃C語言系列語法,於工商業界使用良多,可以順便學習,輕鬆跨越電腦語言障礙。
第一章
UNITY概述與素材庫入門
UNITY程式設計使...
作者序
序言
許多初學者在接觸Unity遊戲引擎時,往往一頭霧水而無法掌握學習方向,尤其是程式設計部分,更讓人覺得無從下手,即便閱讀大量書籍與網路文獻亦無法具體改善。
為了解決這個問題,本書作者以多年教學經驗,建立從零開始的學習路徑,讓初學者可以透過本書,輕易學習Unity程式設計,並且在閱讀本書之後,擁有自行學習的能力。
閱讀本書並不需要任何程式基礎,只要從頭開始照著書本案例一步一步練習,就可以學會基礎的Unity遊戲程式設計能力。本書以初學者為出發點,以完整的遊戲程式開發過程為學習路徑,輔以大量圖片說明,讓沒有程式基礎的讀者,可以由淺而深的學習Unity程式設計。
本書內容經過實際課堂教學驗證與完善,並獲得學生一致好評,值得向初學者推薦。
序言
許多初學者在接觸Unity遊戲引擎時,往往一頭霧水而無法掌握學習方向,尤其是程式設計部分,更讓人覺得無從下手,即便閱讀大量書籍與網路文獻亦無法具體改善。
為了解決這個問題,本書作者以多年教學經驗,建立從零開始的學習路徑,讓初學者可以透過本書,輕易學習Unity程式設計,並且在閱讀本書之後,擁有自行學習的能力。
閱讀本書並不需要任何程式基礎,只要從頭開始照著書本案例一步一步練習,就可以學會基礎的Unity遊戲程式設計能力。本書以初學者為出發點,以完整的遊戲程式開發過程為學習路徑,輔以大量圖片說明,讓沒有程式...
目錄
目錄
第一部分 世界上最簡單的遊戲程式設計:UNITY與C#Script聯手
第一章 UNITY概述與素材庫入門
1.1 Unity程式設計
1.2 安裝UNITY
1.3 建立專案
1.4 資源商店簡介
1.5 建立場景
1.6 建立遊戲物件
1.7 2D模式的運作方式
1.8 顯示圖層的概念
1.9 遊戲執行與相機設定
1.10 物理控制與Rigidbody
第二章 程式設計基礎C# script簡介
2.1 為遊戲物件加入C#程式
2.2 設定程式編輯器
2.3 C#與Visual Studio自動完成功能簡介
2.4 Unity的線上文件
2.5 編輯第一個C#程式
2.6 UI物件簡介
2.7 程式與遊戲物件
2.8 C#的變數形態
2.9 運算元與運算子
2.10 型態轉換
2.11 條件判斷命令
2.12 按鍵與事件
2.13 條件判斷進階
2.14 選擇條件
2.15 for迴圈
2.16 while迴圈
2.17 do – while迴圈
2.18 陣列
2.19 Unity C#程式實作
第三章 2D範例程式:幽浮遊戲
3.1 使用碰撞器
3.2 按下按鍵就可以移動與停止的控制方式
3.3 旋轉物體為遊戲添加樂趣
3.4 利用Rigidbody讓物體可以互相碰撞
3.5 讓物體消失
3.6 製作Prefab
3.7 程式控制攝影機
3.8 使用者界面與字型
3.9 遊戲執行時期的UI控制
3.10 進階—讓石頭復活
第二部分 UNITY物件控制與C# 整合—以3D對戰遊戲設計為例
第四章 導入3D資源庫場景與人物資源
4.1 建立專案
4.2 由資源商店導入遊戲資源
4.3 建立主場景
4.4 角色匯入
第五章 人物動作與拍攝角度調整
5.1 設定攝影機跟隨
5.2 程式控制攝影機行為
5.3 為角色加入動畫控制器
5.4 設定自動導航功能
5.5 簡易自動導航程式
5.6 C#的物件宣告
5.7 角色移動動作
第六章 使用狀態機
6.1 動畫控制器簡介
6.2 新增動畫狀態
6.3 動畫參數與狀態轉變
6.4 利用程式控制角色動作
第七章 特效動畫與音效
7.1 加入特效
7.2 播放特效
7.3 利用程式新增特效物件
7.4 動畫事件
7.5 播放音效
第八章 製作攻擊物件
8.1 製作砲彈類攻擊物件
8.2 利用動畫事件發射砲彈
8.3 為移動中的物體加上音效
8.4 控制物體在一段時間後自動消失
第九章 碰撞效果
9.1 為物體加上碰撞效果
9.2 控制物體在碰撞後自動消失
第十章 動畫控制器
10.1 自製動畫控制器
10.2 為動畫控制器加入新動作
10.3 規劃動畫控制器參數
10.4 狀態轉變與控制器參數
10.5 利用程式操控動畫控制器
第十一章 角色控制器
11.1 角色控制器簡介
11.2 自行控制角色移動
11.3 動畫控制器進階
第十二章 動畫混合實作
12.1 動畫混合實作
12.2 狀態轉變進階
12.3 碰撞器簡介
12.4 解決碰撞器干擾
第十三章 製作敵人
13.1 新增敵人
13.2 為敵人設定追蹤功能
13.3 動態物體與靜態物體
13.4 自動追蹤移動控制
13.5 自動停止
13.6 控制死亡動作
13.7 為敵人加入自動攻擊
第十四章 角色判斷問題
14.1 解決角色間的攻擊判定問題
14.2 使用Rigidbody做為攻擊判斷
14.3 運用標籤來判斷碰撞物體
14.4 死亡後自動消失
14.5 自動巡邏
14.6 角色控制器的細部調整
14.7 調整主攝影機運作方式
14.8 使用RayCast做為攻擊判斷
14.9 利用LookAt讓敵人對準主角
14.10 處理主角死亡動作
第十五章 角色生命值
15.1 建立主角血條
15.2 建立血條用質材
15.3 連結扣血與血條
15.4 製作敵人血條
第十六章 完成對戰遊戲
16.1 解決主角的死而復生問題
16.2 為主角增加回血功能
16.3 建立可以反覆使用的Prefab
16.4 加上使用者界面
16.5 最後修飾
目錄
第一部分 世界上最簡單的遊戲程式設計:UNITY與C#Script聯手
第一章 UNITY概述與素材庫入門
1.1 Unity程式設計
1.2 安裝UNITY
1.3 建立專案
1.4 資源商店簡介
1.5 建立場景
1.6 建立遊戲物件
1.7 2D模式的運作方式
1.8 顯示圖層的概念
1.9 遊戲執行與相機設定
1.10 物理控制與Rigidbody
第二章 程式設計基礎C# script簡介
2.1 為遊戲物件加入C#程式
2.2 設定程式編輯器
2.3 C#與Visual Studio自動完成功能簡介
2.4 Unity的線上文件
2.5 編輯第一個C#程式
2.6 UI物件簡介
2.7 程式與遊戲...