1 回答

TA貢獻1796條經驗 獲得超4個贊
看起來你的腳本做了一些相互沖突的事情。
這部分:
if (Interacting == true)
{
Debug.Log("Test1");
obj.GetComponent<NPCMasterScr> ().DialogueActive = true;
}
else
{
obj.GetComponent<NPCMasterScr> ().DialogueActive = false;
}
這將在層次結構中較高的腳本上正常工作。當第二個腳本嘗試在 if = true 時執行某些操作時,第一個腳本會通過其else. 因此,當第二個腳本嘗試執行時obj.GetComponent<NPCMasterScr> ().DialogueActive = true;,第一個腳本就會執行obj.GetComponent<NPCMasterScr> ().DialogueActive = false;。
更新1: 以下代碼可能有助于理解問題。
void Update()
{
if (Interacting == true)
{
Debug.Log("Test1");
obj.GetComponent<NPCMasterScr> ().DialogueActive = true;
}
if (Input.GetKeyDown("escape"))
{
Interacting = false;
obj.GetComponent<NPCMasterScr> ().DialogueActive = false;
}
}
如何使用:
與第一個對象交互
停止互動
按 Esc(執行此步驟之前應停止交互?。?/p>
與第二個對象交互
...以及DialogueActive
每個步驟的控制狀態
- 1 回答
- 0 關注
- 108 瀏覽
添加回答
舉報