Unity GUIText на Столкновение C#
Я пишу программу 3D лабиринт на C#, и мне нужно, чтобы текст UI отображал "You Win!" Когда игрок достигает конца лабиринта.
У меня есть триггер, настроенный в Unity как куб с именем FinishLine, и у меня есть текст пользовательского интерфейса с именем winText
Я получаю сообщение об ошибке в этой строке..
GUI.Box (Новый прямоугольник (10,10,100,90), winText);
ошибка "лучший перегруженный метод matfch для unityengine.gui.box (unityEngine rect, string)" имеет недопустимые аргументы
Я также понятия не имею, что это за числа (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 не содержит определения для текста, и невозможно найти метод расширения" text ", принимающий первый аргумент типа" UnityEngine.Texture ". Вы пропустили директиву using или ссылку на сборку?
НОВЫЙ КОД:
использование System.Collections; using 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!"; } } }
1 ответ
Прежде всего, это OnGUI
не OnGui
, Правописание имеет значение. Если вы обнаружите, что используете OnGUI
, остановись и найди другие способы достичь того, что ты делаешь.
GUIText
является устаревшим компонентом пользовательского интерфейса. Это старый и 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 здесь.