C# Unity3D。使用自定义检查器实例化和显示枚举对象

C# Unity3D。使用自定义检查器实例化和显示枚举对象,c#,unity3d,C#,Unity3d,我的脚本从父对象提取所有子对象。我需要分别将材质指定给子对象,或通过父对象将材质指定给所有对象 当前,当我更改子材质时,所有其他子对象材质也会更改 这是我的密码 if (includeChildObj == true) { EditorGUILayout.Foldout(includeChildObj, "List of Child Objects", includeChildObj); for (int i = 0; i < Geometry.ge

我的脚本从父对象提取所有子对象。我需要分别将材质指定给子对象,或通过父对象将材质指定给所有对象

当前,当我更改子材质时,所有其他子对象材质也会更改

这是我的密码

if (includeChildObj == true)
    {
        EditorGUILayout.Foldout(includeChildObj, "List of Child Objects", includeChildObj);
        for (int i = 0; i < Geometry.getChildNames().Count; i++) // loop through all child objects
        {
            GUILayout.BeginHorizontal();
            GUILayout.Label(Geometry.getChildNames()[i]); // display object name
       EditorGUILayout.PropertyField(serializedObject.FindProperty("SelectMaterial")); // find an enum which allows the dropdown list
            GUILayout.EndHorizontal();
            serializedObject.ApplyModifiedProperties();
        }              
    }
在FOR循环中,对于每个几何体对象,我需要实例化相应枚举的新对象。我不知道如何做到这一点,因为我使用的是CustomEditor而不是MonoBehavior


谢谢大家!

似乎在for循环的每次迭代中都引用了相同的序列化对象。因此,在每次迭代中,只有一个值被读取和分配,这解释了您所看到的行为。
我不清楚您的要求是什么,但可能您需要该序列化对象的多个实例,每个几何体子对象一个?

是的,确切地说,我需要EditorGUILayout.PropertyFieldserializedObject.FindPropertySelectMaterial的多个实例;我的要求是每个子对象可以单独设置一个材质,请参阅我提供的照片链接,这可能会帮助您理解这个问题。