C# 如何检查是否满足两个条件?

C# 如何检查是否满足两个条件?,c#,unity3d,C#,Unity3d,我试图让我的玩家走到一个游戏对象上,如果他们在这个对象上,他们按下空格键,就会显示一个调试日志 private void OnTriggerEnter2D(Collider2D other) { if (other.gameObject.tag == "Level_1" && Input.GetKeyDown(KeyCode.Space)) { Debug.Log("Both Conditions Reached"); } } 这只会在他们进入

我试图让我的玩家走到一个游戏对象上,如果他们在这个对象上,他们按下空格键,就会显示一个调试日志

private void OnTriggerEnter2D(Collider2D other)
{
   if (other.gameObject.tag == "Level_1" && Input.GetKeyDown(KeyCode.Space))
   {
        Debug.Log("Both Conditions Reached");
   }
}

这只会在他们进入对象时按住空格键时触发。当按下空格键时,最好检查它们当前是否与对象发生碰撞。(或在更新中检查两者)

在玩家对象中调用此选项:

private void OnTriggerEnter2D(Collider2D other) {
   if (other.gameObject.tag == "Level_1") {
        player.isInside = true;
   }
}

private void OnTriggerExit2D(Collider2D other) {
   if (other.gameObject.tag == "Level_1") {
        player.isInside = false;
   }
}
并使用此选项检查空格键:

 public void Update() {
      if (Input.GetKeyDown(KeyCode.Space) && player.isInside == true) {
        Debug.Log("Both Conditions Reached");
     }
 }

你能告诉我你当前的代码有什么问题吗?在这个代码中,当物体撞击碰撞器时,空格键必须关闭。这就是你想要的吗?是的,你的问题是什么?是否缺少if语句的右大括号?@wakeel这不是编译问题。这个问题措词不当,但最有可能的错误在第一个答案中有详细说明。缺少大括号很可能是从源代码到浏览器的复制/过去的结果。我可能会用类似于
isInside
或其他什么的东西来替换
foo
,但其他方面都很好。:)谢谢你的建议。更新:)