iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
Mobile Development

30天輕鬆學會unity自製遊戲系列 第 23

30天輕鬆學會unity自製遊戲-撿道具

目前的炸彈可以連發,來製作炸彈道具數量,讓炸彈有限,直接在Player程式加裝炸彈數,開啟PlayerControl

	//序列化一個炸彈數3
    [SerializeField] int bomb=3;
	//等等顯示還有幾個炸彈的數量
    [SerializeField] Text boomNumber = default;

    private void Update()
    {
        horizontalMove = Input.GetAxisRaw("Horizontal");	
		//持續顯示炸彈數量
        boomNumber.text = "" + bomb;
        //transform.Translate(Vector3.up * 1 * Time.deltaTime, Space.World);
    }

    public void Boom()
    {
		//如果炸彈數大於0才能發射
        if (bomb > 0)
        {	
			//每次發射減一炸彈數
            bomb -= 1;
			//創造炸彈
            Instantiate(boom, transform.position, Quaternion.identity);
        }
    }
	//碰撞觸發
    private void OnTriggerEnter2D(Collider2D collision)
    {

        if (collision.tag == "EnemyBullet")
        {
            hp -= 5f;
            hpBar.fillAmount = hp / hpMax;

            if (hp <= 0)
            {
                anim.SetBool("die", true);
                dieWindow.SetActive(true);
                Destroy(gameObject, 0.5f);
            }
        }
		//如果碰到標籤叫"boom"的執行
        if(collision.tag =="boom")
        {
			//炸彈數加一
            bomb += 1;
			//刪除碰撞到的物件
            Destroy(collision.gameObject);
        }
    }

製作炸彈數量的文字框
https://ithelp.ithome.com.tw/upload/images/20210923/20140598gc0QjghuxA.png
把炸彈數量的文字框裝在Player的BoomNumber上面,這樣等等才會顯示炸彈數量
https://ithelp.ithome.com.tw/upload/images/20210923/20140598fAHAfGGZII.png
把素材庫裡的道具炸彈拿出來,放上collider記得勾isTrigger後製作成預置物
https://ithelp.ithome.com.tw/upload/images/20210923/20140598o33k53rHHg.png
記得把炸彈的標籤改成boom
https://ithelp.ithome.com.tw/upload/images/20210923/20140598aA1iVjq68c.png
再來就是讓敵人死後噴道具炸彈讓玩家撿,開啟敵機程式EnemyAI,簡單寫幾行就好

	//序列化一個物件(炸彈道具)(等等在unity要賦予此物件)
    [SerializeField] GameObject boom = null;
    private void OnTriggerEnter2D(Collider2D collision)
    {
        
        if(collision.tag == "PlayerBullet")
        {
            hp -= 5f;
            anim.SetTrigger("hit");
            if (hp <= 0)
            {
				//死掉時必定產生炸彈道具
               Instantiate(boom, transform.position, Quaternion.identity);
                Destroy(gameObject);
            }
        }
    }

最後把炸彈道具的預置物,放到敵機身上即可
https://ithelp.ithome.com.tw/upload/images/20210923/20140598gnlRW8ZkjX.png
應該運用同原理可以製作吃金幣,運用Boss的機率寫法可以讓掉落機率不一樣,這邊就不一一介紹,有興趣的可以自行嘗試看看,現在應該是可以稍微製作出一些屬於自己的遊戲內容囉~


上一篇
30天輕鬆學會unity自製遊戲-製作Boom
下一篇
30天輕鬆學會unity自製遊戲-添加音效
系列文
30天輕鬆學會unity自製遊戲30

尚未有邦友留言

立即登入留言