0

Unity3dを使用しています

問題の原因を追跡しようとしましたが、成功しませんでした。「Guess」のテキスト更新は、キーを押して行うと正しく行われますが、ボタンをクリックしても正しく行われません (両方とも例外でログに記録されます)。

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(); で次のように述べています。オブジェクトはインスタンスに設定されていませんが、特定のテキストが参照され、NumberWizard.cs を使用する必要があることを Unity3d で設定しました

4

2 に答える 2

1

このスクリプトを作成するときは、GameObject. コーディングを行ったので、Empty gameObject にアタッチする必要があります。次に、エディターからスクリプトを選択すると、パブリック変数Text guessTextがエディターで使用できるようになります。作成した変数をプロパティにドラッグ アンド ドロップするGUIText必要がありguessTextます。

于 2015-02-21T12:50:49.253 に答える
0

エラーは、変数を初期化する必要があることを示しています.Dinalが言うように、「新規」を実行するか、ゲーム内のドラッグアンドドロップオブジェクトに割り当てます.

于 2015-02-23T08:06:32.800 に答える