2015-09-12 97 views
0

我想創建使用統一3d學習目的的怪胎數學應用程序。 我看不到在下面的源代碼中調用的隨機數學函數。onclick按鈕功能似乎並沒有調用randommath函數

當我點擊播放按鈕我可以得到隨機數字,但是一旦我點擊了真正的按鈕或假按鈕,我沒有看到隨機數字函數被調用。

using UnityEngine; 
using System.Collections; 
using UnityEngine.UI; 

public class GameControllerScript : MonoBehaviour 
{ 
    public Text MathText; 
    public Text ResultText; 

    private int rightNumber; 
    private int leftNumber; 
    private int TrueResultNumber; 
    private int FalseResultNumber; 

    void Start() 
    { 
     RandomMath(); 
    } 

    void RandomMath() 
    { 
     rightNumber = Random.Range (0, 10); 
     leftNumber = Random.Range (0, 10); 

     int mOperator = Random.Range (0,2); 
     switch (mOperator) { 
     case 0: 
      TrueResultNumber = leftNumber + rightNumber; 
      MathText.text = leftNumber.ToString() + "+" + rightNumber.ToString(); 
      FalseResultNumber = TrueResultNumber + Random.Range (-2, 2); 
      ResultText.text = "=" + FalseResultNumber.ToString(); 
      break; 
     case 1: 
      TrueResultNumber = leftNumber + rightNumber; 
      MathText.text = leftNumber.ToString() + "-" + rightNumber.ToString(); 
      FalseResultNumber = TrueResultNumber + Random.Range (-2, 2); 
      ResultText.text = "=" + FalseResultNumber.ToString(); 
      break; 
     case 2: 
      TrueResultNumber = leftNumber + rightNumber; 
      MathText.text = leftNumber.ToString() + "*" + rightNumber.ToString(); 
      FalseResultNumber = TrueResultNumber + Random.Range (-2, 2); 
      ResultText.text = "=" + FalseResultNumber.ToString(); 
      break; 
     default: 
      break; 
     } 
    } 
    public void OnTrueButtonClick() 
    { 
     if (TrueResultNumber == FalseResultNumber) { 
      RandomMath(); 

     } 
     else { 
     } 
    } 
    public void OnFalseButtonClick() 
    { 

     if (TrueResultNumber != FalseResultNumber) { 
      RandomMath(); 
     } else { 
     } 
    } 
} 

回答

0

看起來您需要在檢查器中設置點擊事件。如果上面的腳本在遊戲對象上,請嘗試以下操作

單擊檢查器中的按鈕單擊+號以添加單擊事件。 將帶腳本的對象拖到插槽中,並確保選中編輯器和運行時。 選擇功能GameControllerScript.OnFalseButtonClick

對其他重複按鈕,但使用OnTrueButtonClick

應該後工作。

0

您是否爲該按鈕指定了操作?

您的方法的名稱與按鈕的名稱沒有任何關係,因此您必須由您自己指定相關的方法。

看到這段視頻,5:35;)

https://youtu.be/kQ2Qc_0MIyI?t=335

0

我沒有Unity3d,但有一個人在這個論壇上,一旦誰發現,他們的變量是超出範圍引起某些操作不會發生。事實證明,這個框架顯然利用了多個線程。他們能夠通過使類級變量爲靜態來確定這一點。這暴露了所有線程相同的變量。我只注意到你的OnTrueButtonClick()操作也具有使用非靜態的類級變量的條件。那是在Am I losing scope within IF statements?

這將是值得一試。