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
,但其他方面都很好。:)谢谢你的建议。更新:)