Exemple #1
0
        public static object ScriptDrawer(object[] objects, InvokeWrapper wrapper)
        {
            object result           = null;
            var    type             = wrapper.GetContainingType();
            bool   allowSceneObject = type == typeof(GameObject) ||
                                      typeof(ScriptComponent).IsAssignableFrom(type);
            Object valInField       = wrapper.Get <Object>(objects[0]);
            bool   recursiveEditing = wrapper.HasAttribute <AllowRecursiveEditing>();

            if (recursiveEditing)
            {
                result = InspectorGUI.FoldoutObjectField(InspectorGUI.MakeLabel(wrapper.Member),
                                                         valInField,
                                                         type,
                                                         EditorData.Instance.GetData(objects[0] as Object,
                                                                                     wrapper.Member.Name),
                                                         !wrapper.CanWrite());
            }
            else
            {
                result = EditorGUILayout.ObjectField(InspectorGUI.MakeLabel(wrapper.Member),
                                                     valInField,
                                                     type,
                                                     allowSceneObject);
            }

            return(result);
        }