2016-07-04 105 views
1

我有一個菜單場景,玩家可以跳轉。在真正的比賽開始之前只是爲了好玩。遊戲首先點擊一個UI按鈕。但是,如果我點擊按鈕,播放器將在新場景加載之前跳轉。我想阻止這一點。所以我必須在跳轉之前檢查,如果沒有按鈕被點擊。任何想法如何做到這一點?如果按鈕被點擊,Unity防止跳轉

我試着用一個靜態變量。但問題是,調用Jump Function的腳本首先運行。在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

很簡單。

檢查,如果鼠標在GUI元素:

EventSystem.current.IsPointerOverGameObject()

所以

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

此檢查,以確保如果他們點擊鼠標,他們也沒有在GUI元素,那麼玩家可以跳躍。另外,當你得到這樣的大條件時,把它們分解成輔助方法是一個不錯的主意。

+0

謝謝!非常簡單 - 但是我剛開始在Unity中開發。你幫了很多忙。我會盡可能快地回答這個問題。 (延遲7分鐘) – DannielR