我有一个播放器可以跳转的菜单场景。只是为了在真正的游戏开始前的乐趣。游戏从点击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;
}
}
答案 0 :(得分:1)
很简单。
检查鼠标是否在GUI元素上:
EventSystem.current.IsPointerOverGameObject()
所以
if (Input.GetMouseButtonDown(0)
&& isGrounded
&& !EventSystem.current.IsPointerOverGameObject())
这会检查以确保如果他们点击鼠标并且他们没有超过GUI元素,则播放器可以跳转。
顺便说一句,当你得到这样的大条件时,将它们分解为辅助方法是一个好主意。