GUIText в Unity 5 (нужна альтернатива)
Я следовал учебнику о том, как сделать таймер на YouTube, но я застрял из-за GUIText
проблема в Unity 5. Это мой код:
using UnityEngine;
using UnityEngine.UI;
using System.Collections;
public class Timer : MonoBehaviour {
public float Seconds = 59;
public float Minutes = 0;
void Update() {
if (Seconds <= 0) {
Seconds = 59;
if (Minutes > 1) {
Minutes--;
} else {
Minutes = 0;
Seconds = 0;
//This makes the guiText show the time as X:XX. ToString.("f0") formats it so there is no decimal place.
GameObject.Find("TimerText").GUIText.text = Minutes.ToString("f0") + ":0" + Seconds.ToString("f0");
}
} else {
Seconds -= Time.deltaTime;
}
//These lines will make sure that the time is shown as X:XX and not X:XX.XXXXXX
if(Mathf.Round(Seconds) <= 9) {
GameObject.Find("TimerText").GUIText.text = Minutes.ToString("f0") + ":0" + Seconds.ToString("f0");
} else {
GameObject.Find("TimerText").GUIText.text = Minutes.ToString("f0") + ":" + Seconds.ToString("f0");
}
}
}
Проблема с GUIText
,
ошибка CS1061: тип "UnityEngine.GameObject" не содержит определения для "GUIText" и не может быть найден метод расширения "GUIText" типа "UnityEngine.GameObject" (отсутствует директива using или ссылка на сборку?)
Что я могу сделать, чтобы показ таймера в моей игре без GUIText
?
2 ответа
Вместо того чтобы делать GameObject.Find("TimerText").GUIText.text
, вы можете переписать его с помощью GetComponent(string)
метод, который является правильным способом:
GameObject.Find("TimerText").GetComponent<GUIText>().text =
Minutes.ToString("f0") + ":0" + Seconds.ToString("f0");
Просто выберите ваш Gameobject, что вы присвоили ему этот код и в Inspector
посмотреть нажмите на Add Component
и добавить GUI Text
компонент к нему.
не забудьте установить шрифт для него