我一直在学习如何在YouTube上制作定时器的教程,但是由于Unity5中的GUIText问题,我现在陷入了困境。
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’的定义,也找不到'UnityEngine.GameObject‘类型的扩展方法'GUIText’(您是缺少使用指令还是程序集引用?)
在没有GUIText的情况下,我能做什么使计时器在我的游戏中显示?
发布于 2015-06-08 16:30:43
不用执行GameObject.Find("TimerText").GUIText.text,您可以使用GetComponent(string)方法重写它,这是正确的方法:
GameObject.Find("TimerText").GetComponent<GUIText>().text =
Minutes.ToString("f0") + ":0" + Seconds.ToString("f0");发布于 2015-06-08 16:30:40
只需选择指定此代码的游戏对象,然后在Inspector视图中单击Add Component并向其添加GUI Text组件。
别忘了为它设置字体
https://stackoverflow.com/questions/30714357
复制相似问题