我目前在团结中存在问题,我将数字输出到GUIText中,并且由于某种原因,当数字更改时,它会将新数字写在旧数字之上,而不是更改数字。
我不知道为什么会发生这种情况,因为我只有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 :(得分:1)
我现在已经对它进行了排序,但事实证明,当我加载脚本两次的级别时,我只调用了脚本...嘿哎呀。 :)