簡體   English   中英

碰撞C#上的Unity GUIText

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM