當玩家在觸發開關上走動時,我想打開一扇門,所以我創建了 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 關注
- 98 瀏覽
添加回答
舉報
0/150
提交
取消