現在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直接複製都可以,再調一下名稱
接下來改一下通關畫面的內容,標題,按鈕…可以回新增死亡畫面看如何製作
都製作完成就改一下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);
}
}
按鈕之前也學過囉~可以開新場景製作下一關
(或用程式調整下一關的血量數量等)
到目前應該基本遊戲功能大致都完成囉~
剩下就補充跟手機功能應用囉~