Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/unity3d/4.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# 从另一个转换的脚本获取公共数据成员';孩子_C#_Unity3d - Fatal编程技术网

C# 从另一个转换的脚本获取公共数据成员';孩子

C# 从另一个转换的脚本获取公共数据成员';孩子,c#,unity3d,C#,Unity3d,我有一个游戏对象“gm”,它有一个脚本。该脚本具有对Transform parentFoo的引用,并且需要访问一个非静态的公共int“x”,该int“x”存在于作为多个子“bar”组件附加的脚本中,这些子“bar”都是parentFoo的子级。然后我试着把所有这些int都放到一个列表中,但问题是如何得到它们。最简单的方法是什么 下面的代码演示了我试图完成的工作,但它根本不起作用 //defined in UnityEditor: public Transform fooParent; v

我有一个游戏对象“gm”,它有一个脚本。该脚本具有对Transform parentFoo的引用,并且需要访问一个非静态的公共int“x”,该int“x”存在于作为多个子“bar”组件附加的脚本中,这些子“bar”都是parentFoo的子级。然后我试着把所有这些int都放到一个列表中,但问题是如何得到它们。最简单的方法是什么

下面的代码演示了我试图完成的工作,但它根本不起作用

 //defined in UnityEditor:
 public Transform fooParent;

 void blah () {
                 List<int> list = new List<int>();

         for (int i = 0; i < fooParent.childCount; i++) {
             Transform tempChild = Players.GetChild(i);
             list.Add (tempChild.x);
         } 
 }
//在UnityEditor中定义:
公营部门;
废话(){
列表=新列表();
对于(int i=0;i
任何关于你的答案为什么和如何起作用的理论讨论都是非常受欢迎的:D(“教一个人如何钓鱼…”)

编辑:指定标题,将文本复制到stackoverflow;从Unity Answers b.c.中删除链接。问题已在此处完全解决

新代码:

public Transform fooParent;

public void blah () {
    List<int> list = new List<int>();
    for (int i = 0; i < fooParent.childCount; i++) {
        Transform tempChild = fooParent.GetChild(i);
        list.Add (tempChild.gameObject.GetComponent<ScriptName>().x);
    } 
}
public父对象;
公共空间空谈(){
列表=新列表();
对于(int i=0;i

这是因为
.GetChild
返回一个转换,因此必须从那里使用
.gameObject
获取该转换所附加的游戏对象。通过使用
.GetComponent()
在括号内输入要访问的组件(本例中为脚本)的名称,您可以从中访问附加到该游戏对象的组件(脚本、转换等)。现在,在控制脚本时,您可以使用
.variableName
访问其变量。最后,
void blah
应该是
public void blah
。当然,除非您希望它是私有或静态方法。

至少复制/粘贴您问题的内容。当然,我现在就这么做。。。不知为什么,这是个糟糕的问题吗?我修改了我的原始版本,使其尽可能通用和有用这正是我所需要的!我也会给你一个+1,但是这个问题的反对票把我推到了15分以下:“(啊,伙计,别担心,这群人也很难对付。祝你的项目好运!