iT邦幫忙

2021 iThome 鐵人賽

DAY 21
0
Mobile Development

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

30天輕鬆學會unity自製遊戲-Boss死亡問題跟通關畫面

現在Boss死亡時,招喚出來的小兵不會一起死亡,來讓Boss的程式加一個死亡布林值,開啟一下bossAI的程式

	//多加一個公開布林值isdie 起始給false
    public bool isdie=false;

    void Start()
    {
        right = true;
        anim = GetComponent<Animator>();
        InvokeRepeating("Attack", 1f, 2f);
		//開始時也給一下isdie=false(不加此行應該也可)
        isdie = false;
    }
    private void OnTriggerEnter2D(Collider2D collision)
    {

        if (collision.tag == "PlayerBullet")
        {
            hp -= 5f;
            anim.SetTrigger("hit");
            if (hp <= 0)
            {
				//(當boss沒血時)isdie=true告訴程式isdie成立囉
                isdie = true;
				//晚個0.2秒消失,馬上消失可能程式會有運行問題
                Destroy(gameObject,0.2f);
            }
        }
    }

BossAI調整完後,開啟EnemyAI來修改小兵的程式

	//公開一個BossAI的程式 預設空值
    public BossAI boss = null;

    void Start()
    {
        right = true;
        anim = GetComponent<Animator>();
        InvokeRepeating("Attack", 1f, 2f);
		//boss = 找到名稱叫"Boss" (此名稱要一模一樣).找到後取得身上的
        //BossAI程式丟到boss裡
        boss = GameObject.Find("Boss").GetComponent<BossAI>();
    }
    void Update()
    {
        Move();
		//如果(boosAI的程式裡isdie=true就執行)
        if(boss.isdie)
        {
			//銷毀此物件
            Destroy(gameObject);
        }
    }

現在王死完小兵也會一起跟著消滅,那就要進入下一關,一樣跳出一個通關畫面,把死亡畫面複製一下Ctrl+C&Ctrl+V或是Ctrl+D直接複製都可以,再調一下名稱
https://ithelp.ithome.com.tw/upload/images/20210921/20140598GcjyLnJykT.png
接下來改一下通關畫面的內容,標題,按鈕…可以回新增死亡畫面看如何製作
https://ithelp.ithome.com.tw/upload/images/20210921/201405985pxq1hzjw9.png
都製作完成就改一下Player的程式把win通關畫面打開,開啟PlayerControl

	//序列劃一個物件名叫winWindoe(記得unity要拖曳此畫面)
    [SerializeField] GameObject winWindow = null;
	//公開一個BossAI的程式叫boss
    public BossAI boss = null;
    private void Start()
    {
        anim = GetComponent<Animator>();
        rig = GetComponent<Rigidbody2D>();
        InvokeRepeating("Attack", 0.1f, 1.1f);
        hpBar.fillAmount = hp / hpMax;
        dieWindow.SetActive(false);
		//先把通關畫面關閉
        winWindow.SetActive(false);
		// boss = 找到名稱叫"Boss" (此名稱要一模一樣).找到後取得身上的
        //BossAI程式丟到boss裡
        boss = GameObject.Find("Boss").GetComponent<BossAI>();
    }
    private void FixedUpdate()
    {
        Move();
		//當Boss死亡時
        if (boss.isdie)
        {
			//開啟通關畫面
            winWindow.SetActive(true);
        }

    }

按鈕之前也學過囉~可以開新場景製作下一關
(或用程式調整下一關的血量數量等)
到目前應該基本遊戲功能大致都完成囉~
剩下就補充跟手機功能應用囉~


上一篇
30天輕鬆學會unity自製遊戲-調整攝影機
下一篇
30天輕鬆學會unity自製遊戲-製作Boom
系列文
30天輕鬆學會unity自製遊戲30

尚未有邦友留言

立即登入留言