Unity GUIText on Collision c#
Unity GUIText on Collision c#
我正在用 C# 编写 3D 迷宫程序,我需要 UI 文本显示 "You Win!" 当玩家到达迷宫尽头时。
我在 Unity 中设置了一个名为 FinishLine 的多维数据集触发器,并且我有一个名为 winText
的 UI 文本
我在这一行遇到错误..
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 不包含文本的定义,并且找不到接受类型 'UnityEngine.Texture' 的第一个参数的扩展方法 'text'。你是吗缺少 using 指令或程序集引用?
新代码:
using System.Collections; using System.Collections.Generic; using
UnityEngine; using UnityEngine.UI;
public class FinishLine : MonoBehaviour {
public Texture winText; private bool FinishPlane = false;
// Use this for initialization void Start () { FinishPlane =
false;
}
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 here。
我正在用 C# 编写 3D 迷宫程序,我需要 UI 文本显示 "You Win!" 当玩家到达迷宫尽头时。
我在 Unity 中设置了一个名为 FinishLine 的多维数据集触发器,并且我有一个名为 winText
的 UI 文本我在这一行遇到错误..
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 不包含文本的定义,并且找不到接受类型 'UnityEngine.Texture' 的第一个参数的扩展方法 'text'。你是吗缺少 using 指令或程序集引用?
新代码:
using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;
public class FinishLine : MonoBehaviour {
public Texture winText; private bool FinishPlane = false; // Use this for initialization void Start () { FinishPlane =
false;
} 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 here。