单击按钮时Unity预防跳转

时间:2016-07-04 18:13:59

标签: unity3d unity3d-2dtools

我有一个播放器可以跳转的菜单场景。只是为了在真正的游戏开始前的乐趣。游戏从点击UI按钮开始。但是如果我单击按钮,则播放器会在加载新场景之前跳转。我想防止这种情况。因此,如果没有点击按钮,我必须在跳转之前检查。任何想法如何做到这一点?

我用静态变量试了一下。但问题是,调用跳转函数的脚本首先运行。在Buttonscript之前我可以将Variable设置为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;
    }
}

1 个答案:

答案 0 :(得分:1)

很简单。

检查鼠标是否在GUI元素上:

EventSystem.current.IsPointerOverGameObject()

所以

if (Input.GetMouseButtonDown(0) 
&& isGrounded 
&& !EventSystem.current.IsPointerOverGameObject())

这会检查以确保如果他们点击鼠标并且他们没有超过GUI元素,则播放器可以跳转。

顺便说一句,当你得到这样的大条件时,将它们分解为辅助方法是一个好主意。