Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 访问其他脚本';Unity3D中的s引用_C#_Unity3d_Reference - Fatal编程技术网

C# 访问其他脚本';Unity3D中的s引用

C# 访问其他脚本';Unity3D中的s引用,c#,unity3d,reference,C#,Unity3d,Reference,我想要一个对象(游戏),它包含对所有其他对象(玩家、聊天室、控制台等)的引用 我已经创建了这些对象,并在“游戏”对象中引用它们 现在我想引用其他脚本中的“游戏”,并通过它访问它的引用对象 可能吗 public class Game : MonoBehaviour { public GameObject network; public GameObject player; public GameObject console;

我想要一个对象(游戏),它包含对所有其他对象(玩家、聊天室、控制台等)的引用

我已经创建了这些对象,并在“游戏”对象中引用它们

现在我想引用其他脚本中的“游戏”,并通过它访问它的引用对象

可能吗

    public class Game : MonoBehaviour
     {
         public GameObject network;
         public GameObject player;
         public GameObject console;
         public GameObject chat;
         public GameObject authentication;
     }
     public class Chat : MonoBehaviour
     {
         public GameObject game;
         string text = game.console.GetComponent<InputField>().text; // gives an error "GameObject'does not contain a definition for 'console'"
     }
公共类游戏:单一行为
{
公共游戏对象网络;
公共游戏对象玩家;
公共游戏对象控制台;
公共游戏对象聊天;
公开游戏对象认证;
}
公共课堂聊天:单一行为
{
公共游戏对象游戏;
string text=game.console.GetComponent().text;//出现错误“GameObject”不包含“console”的定义
}

原来应该这样使用:

string text = game.GetComponent<Game>().console.GetComponent<InputField>().text
string text=game.GetComponent().console.GetComponent().text

很高兴你自己找到了答案。如果您想最小化您编写的代码量,这是一种方法

public class Game : MonoBehaviour
{
    public InputField console;
}
public class Chat : MonoBehaviour
{
    public Game game;
    string text = game.console.text;
}

您可以在其他脚本中创建一个游戏实例。var game=新游戏();我建议在游戏中使用单例模式,因为您很可能只需要一个,但“游戏”对象不会有我需要的引用,因为它们是通过drag-n在Unity inspector窗口中“生成”的-dropping@JoshAdams您不能实例化
monobhavior
s这样,Unity将抛出一个错误。