2014-09-19 2 views
0

У меня в настоящее время проблема в единстве, где я выводил числа в GUIText, и по какой-то причине, когда число меняет, он записывает новый номер поверх старого вместо того, чтобы изменять номер.Unity GUIText, написанный поверх себя C#

Я понятия не имею, почему это происходит, поскольку у меня только 1 GUIText, который я пишу, скрипт, который выполняет запись, находится только на одном объекте, и я меняю переменную, которая в настоящее время пишут в GUItext, а чем переключение на новый.

Любая помощь на этом была бы весьма благодарна.

код называют:

общественного класса RNG: MonoBehaviour {

public GUIText thisAnswer; 
    public RaycastHit hit = new RaycastHit(); 
    public Camera mycam; 
    int randomNumber = 0; 
    int miniScore = 0; 
    int CorrectCount = 0; 
    int refreshCount = 0; 

    // Use this for initialization 
    void Awake() 
    { 


    } 

    void Start() 
    { 

    } 

    void FixedUpdate() 
    { 
      refreshCount += 1; 




    } 
    // Update is called once per frame 
    void Update() 
    { 

      if (CorrectCount != 5) { 
        StartCoroutine (Selection()); 
        thisAnswer.text = "" + randomNumber; 
        if (refreshCount % 200 == 0) { 
          Refresh(); 
        } 
      } else { 
        PlayerPrefs.SetInt ("MiniScore", miniScore); 
        Destroy (GameObject.Find ("Killswitch")); 
      } 

    } 

    IEnumerator Selection() 
    { 

      if (Camera.main != null) { 
        Ray ray = mycam.ScreenPointToRay (Input.mousePosition); 

        if (Input.GetKeyUp (KeyCode.Mouse0)) { 

          if (Physics.Raycast (ray, out hit)) { 

            if (hit.transform.tag == "answer") { 
              if (System.Convert.ToInt32 (thisAnswer.text) % 3 == 0) { 
                miniScore = miniScore + 100; 
                CorrectCount = CorrectCount + 1; 
                randomNumber = Random.Range (0, 36); 
                yield return new WaitForEndOfFrame(); 

              } else if (System.Convert.ToInt32 (thisAnswer.text) % 3 != 0) { 

                if (miniScore > 50) { 
                  miniScore = miniScore - 50; 
                } else if (miniScore < 50) { 
                  miniScore = 0; 
                } 
                randomNumber = Random.Range (0, 36); 
                yield return new WaitForEndOfFrame(); 
              } 
            } 
          } 
        } 
      } 
    } 

    void Refresh() 
    { 

      randomNumber = Random.Range (0, 36); 


    } 

}

+0

Привет, только для того, чтобы быть уверенным, что стоит поставить сообщение журнала в методе Start() и посмотреть, как-то появилось более одного экземпляра созданного скрипта. –

+0

Просто проверил это и он работает только один раз , – Jed

ответ

1

Я отсортировали это сейчас, оказывается, в то время как я был только вызове сценария один раз я загружал уровень, который скрипт был в два раза ... хе-хе. :)

Смежные вопросы