Unity3d 单击按钮时防止跳转

Unity3d 单击按钮时防止跳转,unity3d,unity3d-2dtools,Unity3d,Unity3d 2dtools,我有一个菜单场景,玩家可以在其中跳跃。在真正的游戏开始之前只是为了好玩。游戏开始于点击一个UI按钮。但如果我单击按钮,播放器将在加载新场景之前跳转。我想防止这种情况发生。因此,在跳转之前,我必须检查是否没有点击任何按钮。有什么办法吗 我用一个静态变量试过了。但问题是,调用跳转函数的脚本首先运行。在Buttonscript之前,我可以将变量设置为false void Update() { isGrounded = Physics2D.OverlapCircle(GroundCheck1.p

我有一个菜单场景,玩家可以在其中跳跃。在真正的游戏开始之前只是为了好玩。游戏开始于点击一个UI按钮。但如果我单击按钮,播放器将在加载新场景之前跳转。我想防止这种情况发生。因此,在跳转之前,我必须检查是否没有点击任何按钮。有什么办法吗

我用一个静态变量试过了。但问题是,调用跳转函数的脚本首先运行。在Buttonscript之前,我可以将变量设置为false

void Update()
{
    isGrounded = Physics2D.OverlapCircle(GroundCheck1.position, 0.15f, groundLayer);

    // Here I want to check if the click doesnt hit a button
    if (Input.GetMouseButtonDown(0) && isGrounded)
    {
        GetComponent<AudioSource>().Play();

        // Here I set Jump to true, so my FixedUpdate Method can execute the Jump
        jump = true;
    }
}
void Update()
{
IsGround=Physics2D.重叠圆(接地检查1.位置,0.15f,接地层);
//这里我想检查一下点击是否没有点击按钮
if(Input.GetMouseButtonDown(0)和&isground)
{
GetComponent().Play();
//在这里,我将Jump设置为true,因此我的FixedUpdate方法可以执行跳转
跳跃=真;
}
}
非常简单

检查鼠标是否位于GUI元素上:

EventSystem.current.IsPointerOverGameObject()

所以

这将检查以确保如果他们单击鼠标并且没有在GUI元素上,那么玩家可以跳转


顺便说一句,当您遇到这样的大条件时,最好将它们分解为助手方法。

谢谢!!很简单-但我刚刚开始在团结中发展。你帮了很多忙。我会尽快将此标记为已回答。(延迟7分钟)
if (Input.GetMouseButtonDown(0) 
&& isGrounded 
&& !EventSystem.current.IsPointerOverGameObject())