C# 关于碰撞c的统一性#

C# 关于碰撞c的统一性#,c#,unity3d,triggers,collision,guitext,C#,Unity3d,Triggers,Collision,Guitext,我正在用C#编写一个3D迷宫程序,当玩家到达迷宫末端时,我需要让UI文本显示“You Win!” 我在Unity中设置了一个触发器作为多维数据集,名为FinishLine,UI文本名为winText 我在这条线上遇到了一个错误 Box(新的rect(10,10100,90),winText) 错误是“unityengine.gui.box(unityengine rect,string)的最佳重载方法matfch”具有一些无效参数 我也不知道这些数字是什么(10,10100,90),所以可能是搞

我正在用C#编写一个3D迷宫程序,当玩家到达迷宫末端时,我需要让UI文本显示“You Win!”

我在Unity中设置了一个触发器作为多维数据集,名为FinishLine,UI文本名为winText

我在这条线上遇到了一个错误

Box(新的rect(10,10100,90),winText)

错误是“unityengine.gui.box(unityengine rect,string)的最佳重载方法matfch”具有一些无效参数

我也不知道这些数字是什么(10,10100,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.Generic;使用 联合发动机;使用UnityEngine.UI

公共课终点线:单一行为{

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的更多信息。

您可能希望查看与Unity引擎相关的问题或与视频游戏构建相关的问题。您是否可以发布错误内容?此外,您是否考虑过使用新的Unity UI?管理起来简单得多-您只需在对象上创建一个文本组件,然后启用/disa即可我知道我忘了什么。“unityengine.gui.box(unityengine rect,string)的最佳重载方法matfch”有一些无效参数谢谢程序员!我看了几个视频,试图现在就把代码看完,但在第20行我遇到了一个错误”“unityEngine.Texture”不包含“text”的定义,并且找不到接受类型为“unityEngine.Texture”的第一个参数的扩展方法文本。是否缺少指令或程序集引用?请在问题中输入EDIT,并发布导致错误的新代码。我将查看它。此外,您应该具有
使用UnityEngine.UI;
在代码顶部。它是
公共文本winText;
而不是
公共纹理winText;
。请直接从我留下的答案中复制代码。ahp。我在看到你的评论之前就修复了它。我知道它必须是一些小东西,我使用的是monodev,当我打印文本时它会自动放置纹理。T汉克斯:很多人!很好。如果你的问题解决了,请回答。