gpt4 book ai didi

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

转载 作者:可可西里 更新时间:2023-11-01 11:23:10 25 4
gpt4 key购买 nike

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

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。

最佳答案

您正在创建 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 已经是一个 bool 值,所以不需要在第一个方法中进行比较:ie

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

关于c# - 为什么它不将 Bool 变量传递给另一个类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55846603/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com