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 で設定しました