Unity 2D小遊戲製作(一) :從零開始

 

  1. 下載與安裝Unity
  2. 創建太空船
  3. 太空船移動
  4. 遊戲邊界設定

 

       此篇效果 - 飛行船與遊戲邊界* * * * 

 

 

 

-  接下來進入完整教學   -

 

素材網址: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

arrow
arrow
    全站熱搜

    『迷途』 發表在 痞客邦 留言(6) 人氣()