2D游戏入门——小狐狸系列(二十一)死亡检测&场景切换

Session21:场景控制SceneManager

这节课我们来为游戏添加场景控制的效果。

死亡检测

首先设置角色死亡的效果,这里看弹幕说有用y轴坐标判断的,好像也行,但感觉用trigger来检测确实应用场景更广一些,比如角色碰到突刺的物体就死亡,用y轴坐标判断显然是无法做到的。

可以用一个空物体的collider来实现死亡检测

image-20211105105620191

下面来实现代码:

	void Restart()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

	//触发器检测
    private void OnTriggerEnter2D(Collider2D collision)
    {
        if (collision.tag == "Collection")
        {
            collectionAudio.Play();
            Destroy(collision.gameObject);
            score++;
            cherryNumber.text = score.ToString();
        }
        if (collision.tag == "DeadLine")
        {
            //关闭第一个AudioSource,这里的第一是指人物身上组件的顺序
            GetComponent<AudioSource>().enabled = false;
            //延迟2s调用
            Invoke("Restart", 2f);
        }
    }

切换场景

前面添加的Dialog,当我们走到门那里的时候按下E可以进入下个场景,现在我们来实现。

因为只有角色处于door的位置时按下E才能切换场景,所以很显然我们可以把脚本挂在Panel上,因为它也是只有在door那里才会触发的

public class EnterScene : MonoBehaviour
{
    void Update()
    {
        if(Input.GetKeyDown(KeyCode.E))
        {
            SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex + 1);
        } 
    }
}

这里的buildIndex是指这里的序号:

image-20211105113818640
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值