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(执行此步骤之前应停止交互!)
与第二个对象交互
...以及DialogueActive
每个步骤的控制状态
- 1 回答
- 0 关注
- 78 浏览
添加回答
举报