当玩家在触发开关上走动时,我想打开一扇门,所以我创建了 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")
- 1 回答
- 0 关注
- 80 浏览
添加回答
举报
0/150
提交
取消