为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

C#
守着一只汪 2022-12-31 10:46:07
当玩家在触发开关上走动时,我想打开一扇门,所以我创建了 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。
查看完整描述

1 回答

?
炎炎设计

TA贡献1808条经验 获得超4个赞

您正在创建 的新实例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")


查看完整回答
反对 回复 2022-12-31
  • 1 回答
  • 0 关注
  • 80 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信