【问题标题】:the onclick button function does not seem to call the randommath functiononclick 按钮功能似乎没有调用 randommath 功能
【发布时间】:2015-09-13 00:51:44
【问题描述】:

我正在尝试使用 unity 3d 创建该死的数学应用程序以用于学习目的。 我看不到在下面的源代码中调用了随机数学函数。

当我点击播放按钮时,我可以获得随机数,但是一旦我点击真按钮或假按钮,我就看不到正在调用 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 {
        }
    }
}

【问题讨论】:

    标签: c# unity3d unityscript buttonclick


    【解决方案1】:

    您是否为按钮分配了操作?

    你的方法名称和按钮的名称没有任何关系,所以你必须自己分配相关的方法。

    观看此视频,5:35 ;)

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

    【讨论】:

      【解决方案2】:

      看起来您需要在检查器中设置点击事件。如果上述脚本在游戏对象上,请尝试以下操作

      在检查器中单击您的按钮单击 + 号以添加单击事件。 将带有脚本的对象拖到插槽中,并确保选择了编辑器和运行时。 选择函数 GameControllerScript.OnFalseButtonClick

      在另一个按钮上重复但使用 OnTrueButtonClick

      它应该在那之后工作。

      【讨论】:

        【解决方案3】:

        我没有Unity3d,但是曾经有人在这个论坛上发现他们的变量超出范围导致某些操作无法发生。事实证明,这个框架显然利用了多线程。他们能够通过将类级变量设为静态来确定这一点。这会将相同的变量暴露给所有线程。我刚刚注意到您的 OnTrueButtonClick() 操作具有使用非静态类级变量的条件。那是Am I losing scope within IF statements?

        值得一试。

        【讨论】:

          猜你喜欢
          • 2021-07-15
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-12-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-12-29
          相关资源
          最近更新 更多