[英]Unity GUIText on Collision c#
我正在用C#編寫3D迷宮程序,我需要讓UI文本顯示為“ You Win!”。 當玩家到達迷宮盡頭時。
我在Unity中將觸發器設置為一個名為FinishLine的多維數據集,並且將UI文本命名為winText
我在這條線上出現錯誤。
GUI.Box(新矩形(10,10,100,90),winText);
錯誤是“ Unityengine.gui.box(unityEngine rect,字符串)的最佳重載方法matfch”具有一些無效的參數
我也不知道這些數字是多少(10,10,100,90),所以也許這搞砸了嗎? 這些值表示什么?
這是我的代碼。
public class TextTrigger : MonoBehaviour {
public GUIText winText;
private bool FinishLine = false;
void Start () {
FinishLine = false;
}
void OnTriggerEnter(Collider col){
if (col.tag == "Player") {
FinishLine = true;
}
}
void OnGui() {
GUI.Box(new Rect(10,10,100,90), winText);
}
}
編輯-更新了我的代碼,並且出現了新錯誤。 在第21行上說: “ UnityEngine.Texture不包含文本的定義,找不到可以接受類型為'UnityEngine.Texture'的第一個參數的擴展方法'text'。您是否缺少using指令或程序集引用?
新代碼:
使用System.Collections; 使用System.Collections.Generic; 使用UnityEngine; 使用UnityEngine.UI;
公共類FinishLine:MonoBehaviour {
public Texture winText; private bool FinishPlane = false; // Use this for initialization void Start () { FinishPlane =
假;
} void OnTriggerEnter(Collider col) { if (col.tag == "Player") { FinishPlane = true; winText.text = "You Win!"; } } }
首先,它是OnGUI
而不是OnGui
。 拼寫很重要。 如果您發現自己使用OnGUI
,請停止並找到其他方式來完成您的工作。
GUIText
是舊版UI組件。 它很舊,現在應該使用Text
組件。 如果仍要使用它,則下面是使用GUIText
的正確方法。
public GUIText winText;
private bool FinishLine = false;
void Start()
{
FinishLine = false;
}
void OnTriggerEnter(Collider col)
{
if (col.tag == "Player")
{
FinishLine = true;
winText.text = "You Win";
}
}
為此,應使用Text
組件,下面是如何使用Text
組件做到這一點:
public Text winText;
private bool FinishLine = false;
void Start()
{
FinishLine = false;
}
void OnTriggerEnter(Collider col)
{
if (col.tag == "Player")
{
FinishLine = true;
winText.text = "You Win";
}
}
您可以在此處了解有關Unity新UI的更多信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.