Unity 2D小遊戲製作(二) :怪物與攻擊

 

  1. 子彈射出
  2. 創建怪物

      此篇效果 - 子彈射出* * * * 

         

 

-  接下來進入完整教學   -

 

子彈射出

一、在場景中新增一個 Sprite 物件,並將名稱設定為「Bullet

 

二、把 Bullet 的圖片設定為「Knob

 

三、把 Bullet 的Sprite Renderer的 Color 設定成黃色(先拖曳外圈再點選內圈正方形)

 

四、在 Bullet上新增一個 BoxCollider2D (用來偵測跟怪物的碰撞) ,並記得將Is Trigger打勾

 

五、在 Bullet上新增一個Rigbody2D ,並將重力參數(Gravity Scale)調整為零

 

六、接下來在「Code」資料夾中,新增一段名為「BulletCode」的程式碼並雙擊啟動

 

七、編寫下列程式碼

public class BulletCode : MonoBehaviour

{

    void Update()

    {

        //脫離父物件

        this.transform.parent = null;

        //每一偵子彈向上飛行

        this.transform.position += new Vector3(0, 0.1f, 0);

    }

    //下面這個函式是當子彈碰撞到其他物體時會執行

    private void OnTriggerEnter2D(Collider2D collision)

    {

        //如果碰到頂端牆壁,摧毀子彈(為了不讓子彈無限飛行)

        if(collision.name=="Wall_3")

        Destroy(this.gameObject);

    }

}

  • 如下圖

 

八、接下來把 BulletCode 程式碼拖曳到場景中的 Bullet 物件上,這樣子彈就會動囉!

 

九、接下來為了要寫射擊功能,我們要再次開啟ShipController程式碼來編輯,新增下圖的程式碼,新增完後記得按下 ctrl+S 存檔

第一段

       //宣告子彈物件

         public GameObject Bullet;      

第二段

       //如果玩家按下空白鍵

         if (Input.GetKeyDown(KeyCode.Space))

         {

            //在(0,3,0)的位置生成Bullet物件,而Bullet物件指向子彈物件

            Instantiate(Bullet, this.transform.position, Quaternion.identity);

         }

 

十、再來我們要把子彈做成 預製物件 Prefab,我們先創造一個叫做「Prefab」的資料夾

 

十一、再來我們把場景裡的 Bullet 物件拖曳到「Prefab」資料夾裡,這樣就建置好預製物件了

 

十二、再來我們點選太空船,找到程式碼的位置,可以看到一個子彈(Bullet)的空欄位

 

十三、再來我們將Prefab資料夾裡的預製物件Bullet拖曳到上面的空格裡,並刪除掉場景中的Bullet物件(不然會多一個)

 

十四、這樣就大功告成囉!接下來按下Play,再按下空白鍵就可以看到太空船射出子彈囉!

 

 

創建怪物

一、將怪物素材從桌面拖曳到「Sprite」資料夾中,並把他設定成Sprite(記得按下Apply,點一下遊戲場景畫面會出來)。

 

二、把「Sprite」資料夾中的Monster拖曳到Scene中,就可以生成一個怪物物件

 

 

 

三、在Code資料夾中新增一段C#程式碼,叫做「MonsterCode

  • 在MonsterCode中輸入下列程式碼

using System.Collections;

using System.Collections.Generic;

using UnityEngine;

public class MonsterCode : MonoBehaviour

{

    void Update()

    {

        //怪物持續向下移動

        this.transform.position += new Vector3(0, -0.05f, 0);

    }

    //如果被東西碰到

    private void OnTriggerEnter2D(Collider2D collision)

    {

                   else if (collision.name == "Wall_4")

                 {

                   //摧毀怪物

                   Destroy(this.gameObject);

                 }

    }

}

 

四、接下來把「MonsterCode」程式碼拖曳到Monster上,並在Monster身上新增一個 BoxCollider2D

 

五、把BoxCollider2DTrigger勾起來(不要產生碰撞)

 

六、把Monster大小調整為X = 0.75,Y = 0.75 ,Z = 1 就大功告成囉!

 

  • 這只是第二部分喔接下來還有最後一段,怪物死掉動畫跟怪物隨機生成

 

-------------------------------------------------------------------------------------------------------------------------------------

 

我們有粉絲專頁囉!!!       

如果怕有問題連絡不到我們,歡迎隨時私訊FB粉專哦!!!

https://www.facebook.com/Straying2018/

 

●     如果這篇文章有幫助到您,希望您能留言給予我們鼓勵 !  

●     對於文章有任何的建議,非常歡迎留言告訴我們哦 !!!  

●     有任何想知道的功能也歡迎告訴我們,我們會盡快寫成部落格分享給大家 !

 

 

 

 

 

 

 

arrow
arrow
    創作者介紹
    創作者 『迷途』 的頭像
    『迷途』

    迷途 - Unity 工作室

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