Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/288.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_Game Development - Fatal编程技术网

C# 如何更改父元素的子属性?

C# 如何更改父元素的子属性?,c#,unity3d,game-development,C#,Unity3d,Game Development,我正在做一个简单的游戏,我不知道如何在代码中改变颜色。 我有一个父游戏对象,我计划在其中附加脚本以更改子元素的颜色 例如,我有: Parent:A Childs in A = 1,2; 我想得到所有2个元素,并将第一个子元素的颜色更改为黑色,第二个子元素的颜色更改为白色 我想改变标签,当我改变颜色,所以我可以实现随机颜色 在孩子们身上 我不知道我怎样才能让父母的两个孩子换房子 我能把孩子们命名为1和2,然后从游戏对象名为1的孩子的代码中查找并更改颜色属性吗?如果可以的话,我该怎么做 下面的代码

我正在做一个简单的游戏,我不知道如何在代码中改变颜色。 我有一个父游戏对象,我计划在其中附加脚本以更改子元素的颜色

例如,我有:

Parent:A
Childs in A = 1,2;
我想得到所有2个元素,并将第一个子元素的颜色更改为黑色,第二个子元素的颜色更改为白色

我想改变标签,当我改变颜色,所以我可以实现随机颜色 在孩子们身上

我不知道我怎样才能让父母的两个孩子换房子


我能把孩子们命名为1和2,然后从游戏对象名为1的孩子的代码中查找并更改颜色属性吗?如果可以的话,我该怎么做

下面的代码部分是GetProperty方法的一个快速示例用法。简单使用 MyGetProperty和MySetProperty如下所示。请记住,字符串引用的变量必须是属性

public class Parent {
        private int child1 = 0;
        private int child2 = 0;
        public int iChild1 {
            get {
                return child1; 
            }
            set {
                child1 = value;
            }
        }
        public int iChild2 {
            get {
                return child2;
            }
            set {
                child2 = value;
            }
        }

        public void MainMethod() { 
            MySetProperty("iChild1",1);
            MySetProperty("iChild2",2);
            string strOutput = String.Format("iChild1 = {0} iChild2 = {1}",MyGetPrperty("iChild1"), MyGetPrperty("iChild2"));
        }

        public object MyGetProperty(string strPropName)
        {
            Type myType = typeof(Parent);
            PropertyInfo myPropInfo = myType.GetProperty(strPropName);
            return myPropInfo.GetValue(this, null);
        }

        public void MySetProperty(string strPropName, object value)
        {
            Type myType = typeof(Parent);
            PropertyInfo myPropInfo = myType.GetProperty(strPropName);
            myPropInfo.SetValue(this, value, null);
        }

    }

Child C=gameObject.GetComponent(typeof(Child))作为子对象这有帮助吗?好的,那么您可以通过查看转换来获得子项,通过一些检查,您可以使用
transform.GetChild(n)
获取第一个子项,或
GetComponentsInChildren()然后设置属性