为什么它不将 Bool 变量传递给另一个类?

当玩家在触发开关上走动时,我想打开一扇门,所以我创建了 2 个脚本,并将我的 Bool 变量设置在另一个类上,但它在这里不起作用是我的头等舱代码:


internal bool openDoor=false;

private void OnTriggerEnter2D(Collider2D door)

{   

    if (openDoor==true && door.gameObject.tag == "Player")

    {

        StartCoroutine(fading());

    }

}

这是我的第二堂课,将 openDoor 设置为“true”:


private void OnTriggerEnter2D(Collider2D doorTrigger)

{

    if (doorTrigger.gameObject.tag == "Player")

    {

        LoadLevel03 l3 = new LoadLevel03();

        l3.openDoor = true;

    }

}

当我回来找门时,它不会打开,尽管我将 Bool 设置为 true。


守着一只汪
浏览 81回答 1
1回答

炎炎设计

您正在创建 的新实例LoadLevel03,将其openDoor字段设置为 true,然后再次将其丢弃。您需要掌握LoadLevel03关卡中已经存在的对象。编辑:像这样:private void OnTriggerEnter2D(Collider2D doorTrigger){    if (doorTrigger.gameObject.tag == "Player")    {        //find the existing level 3 object and allow it to open        LoadLevel03 l3 = GameObject.Find("Level3Door");        l3.openDoor = true;    }}显然,这取决于您将 3 级对象设置为名称为“Level3Door”附言。openDoor已经是一个布尔值,所以不需要在你的第一种方法中进行比较:即if (openDoor && door.gameObject.tag == "Player")
打开App,查看更多内容
随时随地看视频慕课网APP