Unity 2D小遊戲製作(一) :從零開始
- 下載與安裝Unity
- 創建太空船
- 太空船移動
- 遊戲邊界設定
此篇效果 - 飛行船與遊戲邊界* * * *
- 接下來進入完整教學 -
素材網址:https://drive.google.com/open?id=1dBg9_wqhs6Ch2SxctTPIQYT5Ih-XcSfL
下載與安裝Unity
一、Unity下載網址:https://unity3d.com/get-unity/download
二、選擇「個人版本」與作業系統
三、確認後按下「Download Unity Hub」
四、Unity Hub 開始自動下載
五、開啟 Unity Hub 新增 Unity 編輯器(安裝 > 新增)
六、選擇 Unity 版本(2018.4.1f1版)不要管藍色點點,因為我載過了所以不能點...
七、選擇Unity匯出選項 (這裡我們需要選擇PC遊戲匯出的平台)
八、新增一個專案檔(專案 > 新建)
九、設定為2D專案(我們等等要做2D遊戲)、設定專案名稱與專案位置(自行設定)
十、成功建置完成Unity環境 !!!
創建太空船
一、在下方Asset欄位點擊右鍵 > 點擊Creat > 點擊Folder
二、把資料夾命名為「Sprite」用來存放遊戲2D圖片素材
三、將素材資料夾中的太空船拖曳到「Sprite」資料夾中,並點擊太空船畫面右側會出現相關資訊(下一張圖有放大)
四、把太空船的Texture Type改成Sprite,接著點一下資料夾空白處會出現一個詢問視窗,點選「Apply」(很重要,要點才會套用喔)
五、把資料夾下的太空船拖曳到場景之中
六、把太空船的座標(Position)設定為( 0 , -4 , 0 ),大小(Scale)設定為( 0.4 , 0.4 , 1) 讓太空船在畫面中央偏下
七、接下來要幫我們的太空船加上「碰撞體」BoxCollider2D,首先先點選左邊的太空船物件,按下Add Component 選擇Box Collider 2D,這樣我們的太空船才能與其他的物體產生物理上的碰撞效果喔!
八、除了碰撞體,我們還需要幫太空船加上「剛體」Rigbody 2D,這是用來模擬各種物理狀態的元件,在等等功能中也會用到所以先新增上去
九、如此一來基本的太空船設定就完成囉!
太空船的移動
一、接下來要開始寫程式,我們要使用程式碼讓我們可以用鍵盤操的上下左右鍵操控太空船
第一步新增一個名為「Code」的資料夾(建置方法與Sprite資料夾相同)
二、接下來我們點開Code資料夾,並再Code資料夾底下點擊滑鼠右鍵創建一個 C# 檔案,並將其命名為ShipController
三、快速點擊 ShipContoller 兩下開啟 Visual Studio 編輯環境
四、Visual Studio 編輯環境
五、輸入程式碼,接下來我們將下列的程式碼貼到 Update() 中並按下Ctrl + S儲存
//如果玩家按下右鍵
if (Input.GetKey(KeyCode.RightArrow))
{
//帶有這個程式碼的物件(飛船)會向右改變座標
this.transform.position += new Vector3(0.1f, 0, 0);
}
//如果玩家按下左鍵
if (Input.GetKey(KeyCode.LeftArrow))
{
//帶有這個程式碼的物件(飛船)會向左改變座標
this.transform.position += new Vector3(-0.1f, 0, 0);
}
六、接下來回到Unity編輯畫面,我們把Code資料夾中的ShipController程式碼拖曳到太空船上
七、最後一步我們把太空船上的Rigbody2D物件,重力影響(Gravity Scale)設定成 0 (不然等等執行會掉下去)
八、接下來按下上方的Play按鍵,就可以執行遊戲囉!(利用左右鍵控制太空船左右移動)
遊戲邊界設定
為了不讓玩家超出遊戲範圍,我們必須設定好遊戲的邊界,我們接下來要在場景中加上隱形的牆
一、在畫面新增一個Sprite物件,並幫它命名為Wall_1
二、在Wall_1物件上,找到Sprite Renderer元件,點選它的Sprite 選擇「UISprite」(讓圖片顯示我們比較好調整位置)
三、調整Wall_1物件上的Transform元件,Position改成 X = -7.5,Y = 0, Z =0,Scale改成 X=1, Y=70, Z=1(如圖)
四、接下來就可以在遊戲畫面左側看到一面白色的牆
五、幫Wall_1加上碰撞體 BoxCollider2D(讓牆面會與太空船碰撞,這樣太空船就不會穿出去)
六、在 Wall_1 上的 BoxCollider2D 上點擊碰撞體大小編輯按鈕調整碰撞體大小
六、把碰撞體拉寬一點(比較不容易撞破)
七、這樣就做好第一面牆了!但為了把玩家框起來所以我們會需要四面牆,對 Wall_1 點「右鍵」按下「Duplicate」三次就會出現三個Wall_1的複製體
八、把其他的 Wall_1 分別用右鍵點擊按下Rename 並改名為Wall_2、Wall_3、Wall_4(比較好認)
九、設定個個牆面的位置 Wall_2的Transform元件上的 Position X=7.5,Y =0,Z=0
十、Wall_3的Transform元件上的 Position X=0,Y =5,Z=0 Rotation X = 0,Y =0,Z = 90 Scale X = 1,Y = 90 ,Z = 1
十一、Wall_4的Transform元件上的 Position X=0,Y =-5,Z=0 Rotation X = 0,Y =0,Z = 90 Scale X = 1,Y = 90 ,Z = 1
十二、幫Wall_3(上面的)上多新增一個Rigbody2D,並把Gravity Scale 設定成 0 。
※補充說明
Gravity Scale設為0只是不要讓牆壁受重力影響往下掉。
至於子彈碰到牆壁後消失是到教學2時會教的,這邊只是先幫牆壁加上rigidbody。
加rigidibody的原因:
教學2會在子彈上加上程式碼,如果子彈 ” 碰到 ” 牆壁,子彈就消失。而為了偵測牆壁與子彈是否有碰到(碰撞),兩個物件都需加上rigidbody 及collider ~
十三、設定完成後可以自行調整牆面的碰撞體大小,但記得碰撞體要有一定的「厚度」,不然會被太空船撞破喔! 按下Play 鍵讓太空船去撞旁邊的牆壁吧!
十四、牆壁白白的不太好看,我們點選Wall_1, 找到Sprite Renderer物件,再次點選Sprite,這次選擇 None 牆面就會消失囉!
十五、其他牆面請依此類推,就可以做出隱形牆面的效果囉!
- 這只是第一部分喔接下來還敬請期待第二第三部分!
-------------------------------------------------------------------------------------------------------------------------------------
我們有粉絲專頁囉!!!
如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!
https://www.facebook.com/Straying2018/
● 如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !
● 對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!
● 有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家 !
- By Alex -
2D
留言列表