用Unity製作2D遊戲入門
文、查理
Flappy Bird Style Game是一個簡單有趣的官方原廠範例,可以讓初學者用輕鬆快速的方式,了解UNITY如何製作2D遊戲。
利用簡單的4張圖片,組成一個遊戲的基本內容,分別是:
1. 角色圖片『Bird』
2. 障礙物圖片『Column』
3. 地板圖片『Grass』
4. 背景圖片『Sky』
👉推薦課程:遊戲美術設計師
遊戲製作步驟,大概分成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模型、功能程式碼。對於獨立工作者或初學者的遊戲開發,有非常大的幫助。
FB粉絲團:https://www.facebook.com/lccnetzone
YouTube頻道:https://www.youtube.com/user/LccnetTaiwan
痞客邦Blog:http://lccnetvip.pixnet.net/blog