Unity 5 中的 GUIText(需要替代方案)
GUIText in Unity 5 (Need an alternative)
我一直在关注如何在 YouTube 上制作计时器的教程,但由于 Unity 5 中的 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
。
error CS1061: Type 'UnityEngine.GameObject' does not contain a
definition for 'GUIText' and no extension method 'GUIText' of type
'UnityEngine.GameObject' could be found (are you missing a using
directive or an assembly reference?)
如果没有 GUIText
,我该怎么做才能让计时器在我的游戏中显示?
简单地 select 您分配此代码的游戏对象,然后在 Inspector
视图中单击 Add Component
并向其添加 GUI Text
组件。
不要忘记为其设置字体
代替GameObject.Find("TimerText").GUIText.text
,你可以使用GetComponent(string)
方法重写它,这是正确的方法:
GameObject.Find("TimerText").GetComponent<GUIText>().text =
Minutes.ToString("f0") + ":0" + Seconds.ToString("f0");
我一直在关注如何在 YouTube 上制作计时器的教程,但由于 Unity 5 中的 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
。
error CS1061: Type 'UnityEngine.GameObject' does not contain a definition for 'GUIText' and no extension method 'GUIText' of type 'UnityEngine.GameObject' could be found (are you missing a using directive or an assembly reference?)
如果没有 GUIText
,我该怎么做才能让计时器在我的游戏中显示?
简单地 select 您分配此代码的游戏对象,然后在 Inspector
视图中单击 Add Component
并向其添加 GUI Text
组件。
不要忘记为其设置字体
代替GameObject.Find("TimerText").GUIText.text
,你可以使用GetComponent(string)
方法重写它,这是正确的方法:
GameObject.Find("TimerText").GetComponent<GUIText>().text =
Minutes.ToString("f0") + ":0" + Seconds.ToString("f0");