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);
        }

    }

按钮之前也学过罗~可以开新场景制作下一关
(或用程序调整下一关的血量数量等)
到目前应该基本游戏功能大致都完成罗~
剩下就补充跟手机功能应用罗~


<<:  DAY6 Figma Prototype

>>:  [Day6] 渗透测试证照 - OSCP 小分享

案例:MLOps在医疗产业(下) - 3个局限性与4个学习要点

跟AI/ML 有关的监管考量 在前一篇的文章指出,在医疗产业中的监管文献有两篇。然而这两篇的内容其实...

【第26天】探讨与改善-增加训练样本(一)

摘要 前言 作业流程 手写中文字开源资料 空白背景图片 筛选出官方800字内 内容 前言 1.1 从...

DevOps 组别

DevOps 组别 https://wolkesau.medium.com/devops-组别-37...

成为海贼王的试炼就此展开

EKS试炼 今日会撰写YAML来建置EKS Cluster并使用eksctl执行建置,以及Lens去...

其他名词解释 | ML#Day23

承上一篇,模型训练完成之後的那些Vertex列出评估函数,除了R^2也一并介绍剩下的名词。 MAE ...