0

我正在使用 Unity3d

我试图追踪问题的来源,但没有成功。当通过按键完成时,“猜测”中的文本更新正确发生,但通过单击按钮不会发生(两者都登录异常)。

The code:

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

public class NumberWizard : MonoBehaviour
{
    public Text guessText;
    int min;
    int max;
    int guess;

    public void Higher ()
    {
        min = guess;
        NextGuess ();
    }

    public void Lower ()
    {
        max = guess;
        NextGuess ();
    }

    public void Correct ()
    {
        print ("I won!");
        StartGame ();
    }

    private void StartGame ()
    {
        min = 1;
        max = 1000;
        guess = 500;
        guessText.text = guess.ToString();
        print (guess);
    }

    private void NextGuess ()
    {
        guess = (max + min) / 2;
        guessText.text = guess.ToString();
        print (guess);
    }


    // Use this for initialization
    void Start ()
    {
        StartGame ();
    }

    // Update is called once per frame
    void Update ()
    {
        if (Input.GetKeyDown (KeyCode.UpArrow)) {
            Higher ();
        } else if (Input.GetKeyDown (KeyCode.DownArrow)) {
            Lower ();
        } else if (Input.GetKeyDown (KeyCode.Return)) {
            Correct ();
        }

    }
}

顺便说一句,我已经将按钮放在另一个名为“LevelManager”的控制器上。我已经添加了[RequireComponent(typeof(LevelManager))]上面的类声明,但是没有用。

基本上,它在guessText.text =guess.ToString(); 对象未设置为实例,但我在 Unity3d 中设置了引用特定文本并且它应该使用 NumberWizard.cs

4

2 回答 2

1

创建此脚本时,它需要附加到GameObject. 完成编码后,它应该附加到一个空游戏对象。然后,当您从编辑器中选择脚本时,您的公共变量将在编辑器上可用,现在您必须将创建的变量Text guessText拖放到属性上。GUITextguessText

于 2015-02-21T12:50:49.253 回答
0

该错误表明您必须初始化变量,无论是通过执行“新”还是将其分配给 Dinal 所说的游戏拖放对象。

于 2015-02-23T08:06:32.800 回答