我正在用C#编写一个3D迷宫程序,我需要UI文本显示“你赢了!”当玩家到达迷宫的尽头。
我有一个触发器设置为多维数据集,名为FinishLine,UI文本名为winText
我在这条线上有个错误..。
GUI.Box (10,10,100,90),winText;
错误是“unityengine.gui.box (unityEngine rect,string)的最佳重载方法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不包含文本的定义,也没有扩展方法' text‘接受'UnityEngine.Texture’类型的第一个参数。您是缺少一个使用指令还是程序集参考?“
新代码:
使用System.Collections;使用System.Collections.Generic;使用UnityEngine;使用UnityEngine.UI; 公共类FinishLine : MonoBehaviour { 公共纹理winText;私有bool FinishPlane = false;//将其用于初始化void () { FinishPlane = 假的; }OnTriggerEnter(对撞机){ if (col.tag == "Player") { FinishPlane = true;winText.text = "You Win!";}}
发布于 2017-02-27 04:51:27
首先,它是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";
}
}您可以了解有关联合的新UI 这里的更多信息。
https://stackoverflow.com/questions/42477918
复制相似问题