2015-06-09 84 views
2

我對Unity相當陌生,並且正在爲Android創建我的第一款遊戲作爲遊戲的一部分。我有這個遊戲,你可以通過按下按鈕來使用提升。玩家可以一路拾取多個提升。Unity - Gui按鈕問題(Android)

在一分鐘,我使用此代碼使用升壓:

public void OnGUI() 
    { 
     if (GUI.RepeatButton(new Rect(20, Screen.height - 150, Screen.width/10, Screen.width/10), boostButtonIcon)) 
     { 
      pressedButton = true; 
      //do boost stuff 

     } 
     else 
     { 
      pressedButton = false; 
     } 
    } 

除非我測試了我的電話,工作正常,和我收集說,4級提升,所有的提升會一次性使用。

我也嘗試GUI.Button而不是GUI.RepeatButton,但如果我使用這個沒什麼作用。

我做錯了什麼或有沒有更好的方法?

+0

基於OnGUI的UI被標記爲在文檔「遺產」。較新的uGUI更容易使用。 Unity教程和「實時訓練」視頻非常有幫助。 (GUIText仍然很方便。) – fadden

回答

0

我想通了所有的提升一次使用的原因,我使用RepeatButton而不是按鈕。雖然這並沒有在第一次工作,我與(& &提升> 0)結合它和它現在的作品完美:)

public void OnGUI() 
    { 
       if (GUI.Button(new Rect(20, Screen.height - 150, Screen.width/10, Screen.width/10), boostButtonIcon) && boosts > 0) 
       { 
        useBoostSound.Play(); 
        rigidbody.AddForce(boostVelocity, ForceMode.VelocityChange);  
        boosts -=1; 
       } 
    } 
2

這是非常正常的,因爲OnGUI將被調用每一幀。你應該檢查最後一個值是否爲真,這意味着用戶沒有按下按鈕,只能保存它。試試這個:

if (GUI.RepeatButton(new Rect(20, Screen.height - 150, Screen.width/10, Screen.width/10), boostButtonIcon)) 
{ 
    if (!pressedButton) 
    { 
     //do boost stuff 
    } 
    else pressedButton = true; 
} 

希望我幫了忙!

+0

不幸的是,這並沒有奏效,我所有的提升仍然可以一次性使用! – Tom

+0

對不起,搞砸了很多。現在應該修復。 – Chaoz

+0

沒有運氣我很害怕! – Tom