Inheritance: UnityEngine.MonoBehaviour
Example #1
0
        void drawComponent(EntityBehaviour entityBehaviour, Entity entity, int index, IComponent component)
        {
            var componentType = component.GetType();
            var fields        = componentType.GetFields(BindingFlags.Public | BindingFlags.Instance);

            EditorGUILayout.BeginVertical(GUI.skin.box);
            EditorGUILayout.BeginHorizontal();
            if (fields.Length == 0)
            {
                EditorGUILayout.LabelField(componentType.RemoveComponentSuffix(), EditorStyles.boldLabel);
            }
            else
            {
                entityBehaviour.unfoldedComponents[index] = EditorGUILayout.Foldout(entityBehaviour.unfoldedComponents[index], componentType.RemoveComponentSuffix(), _foldoutStyle);
            }
            if (GUILayout.Button("-", GUILayout.Width(19), GUILayout.Height(14)))
            {
                entity.RemoveComponent(index);
            }
            EditorGUILayout.EndHorizontal();

            if (entityBehaviour.unfoldedComponents[index])
            {
                foreach (var field in fields)
                {
                    var value = field.GetValue(component);
                    DrawAndSetElement(field.FieldType, field.Name, value,
                                      entity, index, component, newValue => field.SetValue(component, newValue));
                }
            }
            EditorGUILayout.EndVertical();
        }
        void drawComponent(EntityBehaviour entityBehaviour, Entity entity, int index, IComponent component) {
            var componentType = component.GetType();
            var fields = componentType.GetFields(BindingFlags.Public | BindingFlags.Instance);

            EditorGUILayout.BeginVertical(GUI.skin.box);
            {
                EditorGUILayout.BeginHorizontal();
                {
                    if (fields.Length == 0) {
                        EditorGUILayout.LabelField(componentType.RemoveComponentSuffix(), EditorStyles.boldLabel);
                    } else {
                        entityBehaviour.unfoldedComponents[index] = EditorGUILayout.Foldout(entityBehaviour.unfoldedComponents[index], componentType.RemoveComponentSuffix(), _foldoutStyle);
                    }
                    if (GUILayout.Button("-", GUILayout.Width(19), GUILayout.Height(14))) {
                        entity.RemoveComponent(index);
                    }
                }
                EditorGUILayout.EndHorizontal();

                if (entityBehaviour.unfoldedComponents[index]) {
                    foreach (var field in fields) {
                        var value = field.GetValue(component);
                        DrawAndSetElement(field.FieldType, field.Name, value,
                            entity, index, component, newValue => field.SetValue(component, newValue));
                    }
                }
            }
            EditorGUILayout.EndVertical();
        }