用Unity製作2D遊戲

文、查理

Flappy Bird Style Game是一個簡單有趣的官方原廠範例,可以讓初學者用輕鬆快速的方式,了解UNITY如何製作2D遊戲。

利用簡單的4張圖片,組成一個遊戲的基本內容。
分別是:
1. 角色圖片『Bird』
2. 障礙物圖片『Column』
3. 地板圖片『Grass』
4. 背景圖片『Sky』

image003

遊戲製作步驟,大概分成6個部分:
1. 場景圖片安排,圖片碰撞感應範圍設定,圖片重力設定
2. 玩家角色,彈跳高度設定,彈跳動畫設定
3. 背景圖片持續橫向移動,移動方向,移動速度,無限循環設定
4. 障礙物出現方式,每間隔三秒出現一組新的障礙物,無限循環
5. 得分設定,美穿過一次障礙物,即可獲得一分,得分文字設定
6. 玩家死亡設定,死亡動畫,遊戲結束畫面,重新遊玩設定,離開遊戲設定

以上就是遊戲的基本架構,在這基礎上,再加上其他的變化,就可以做出各種不同的遊戲。

Unity 的圖片操作方式,基本上就跟illustrator差不多,一樣是用點選的方式,直接就可以移動圖片,旋轉圖片,縮放圖片。一樣可以設定圖層,方便圖片的背景、中景、前情、主角,前後位置的安排設定。

Unity的2D圖形碰撞感應範圍,有很多個選項,有圓形、矩型跟多邊形。

通常玩家角色的造型都是不規則的,所以很適合用多邊形的感應範圍,多邊形感應範圍的設定方式就跟Photoshop的多邊形套索一樣,操作簡單,那圖片的規格該如何設定:一般的JPG圖片格式72dpi即可。

那遊戲的互動部分,需要寫程式碼麼?

Unity大部分的程式指令,都是獨有的,所以對於不熟悉其他程式的人,也可以很容易上手。

初學者一開始只要掌握基本的判斷是跟迴圈,即可輕鬆製作遊戲。

那unity本身的程式指令,會很困難嗎?

以玩家角色彈跳的指令來做示範,其實程式的內容,跟我們平常講話的內容差不多。

玩家角色彈跳程式:
GetComponent<Rigidbody2d>().AddForce(new Vector2(0, 200));
GetComponent<>()
取得(使用)這個物件的某個功能

Rigidbody2d:2D圖片的重力功能
AddForce:增加(朝某個方向移動的)力量

(0,200)
2個數字依序是X Y
X軸代表的是左右移動,正值向右移動,負值向左移動
Y軸代表的是上下移動,正值向上移動,負值向下移動

程式指令中間都會有一個點.
這就很像你的、我的
某個功能「的」某個屬性
2D重力功能「的」增加力量
最後一定都會有個結束符號「;」

整行程式碼翻譯
GetComponent<Rigidbody2d>().AddForce(new Vector2(0, 200));

使用這個物件的2d重力功能的增加力量(向上移動200像素)
我們也必須要跟遊戲說這個動作要執行一次,還是要持續執行

Void Start(){ }
遊戲一開始,執行一次

Void Update(){ }
遊戲開始後,每一秒執行30次(預設值,也可以改成75次)

如果把剛剛的彈跳程式,放在update裡面
Void Update(){
GetComponent<Rigidbody2d>().AddForce(new Vector2(0, 200));

  }

遊戲開始後,會持續向上移動200像素,每一秒會移動6000像素(200像素×30次)如果希望按一下滑鼠左鍵就跳一下,那我們就要再加入一個判斷式:
if(條件){條件達成後要執行的內容}
if(明天是晴天){明天就去海邊走走}
意思就是,如果(if)明天是晴天,那明天就去海邊走走

如果想按一下滑鼠左鍵就跳一下,可以這樣寫:
if(按一下滑鼠左鍵){跳一下}

按一下滑鼠左鍵的寫法:
Input.GetMouseButtonDown(0)

Input:輸入裝置(滑鼠或鍵盤)
GetMouseButtonDown:按下滑鼠的按件
(0):滑鼠的左鍵,0代表的是左鍵,1代表的是右鍵,2代表的是中鍵

整句的意思
Input.GetMouseButtonDown(0)
輸入裝置的滑鼠左鍵按一下


if(Input.GetMouseButtonDown(0)){

GetComponent<Rigidbody2d>().AddForce(new Vector2(0, 200));

}

完整的說法:輸入裝置的滑鼠按一下(左鍵),使用2d重力的功能,這個物件增加向上200像素的力量
口語的說法:按一下,跳一下
其實就是把我們平常想到的任何動作,要非常詳細的跟電腦說明,他才能夠做出你想要的內容。

通常這樣的一個小遊戲,初學者大概只要花費六次課堂的時間,就可以有一個基本的掌握。當然如果想要朝遊戲業發展或是獨立遊戲製作工作室,那就是多練習不同的遊戲範例,掌握更多的功能使用方式。目前全世界大概有一半以上的遊戲開發者,使用Unity開發遊戲。

他同時也擁有相當龐大的遊戲素材庫,包含圖片、音效、背景音樂、角色動畫、3d模型、功能程式碼。對於獨立工作者或初學者的遊戲開發,有非常大的幫助。

加入菜鳥救星官方Line並回覆「我想看文章」,不定期獲得更多知識吧!

不同頻道,不同知識!

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料