/// <summary> /// Draws data mapping GUI. /// - Allows a user to drag/drop applicable class script to parse data into /// </summary> private void DrawDataMappingGUI() { EditorGUILayout.LabelField("Mapping", _mainStyle); GUILayout.Space(5); EditorGUILayout.BeginVertical("box"); EditorGUILayout.LabelField("Destination Class", _subStyle); GUILayout.Space(5); _destinationClass = (MonoScript)EditorGUILayout.ObjectField(_destinationClass, typeof(MonoScript), true); if (_destinationClass == null) { EditorGUILayout.HelpBox("Please drag a class script that you would like the FBDataSnapshot mapped to.", MessageType.Info); } if (_destinationClass != null) { Type classType = _destinationClass.GetClass(); if (classType.IsSubclassOf(typeof(GenericMappable))) { GenericMappable customClass = (GenericMappable)ScriptableObject.CreateInstance(_destinationClass.GetClass()); customClass.ParseKeys(_dataSnapshot); customClass.Map(_dataSnapshot); Editor.CreateEditor(customClass).OnInspectorGUI(); } else { EditorGUILayout.HelpBox("Please make sure that your destination class inherits from GenericMappable and implements the Map() function", MessageType.Warning); } } EditorGUILayout.EndVertical(); }
/// <summary> /// Draws data mapping GUI. /// - Allows a user to drag/drop applicable class script to parse data into /// </summary> private void DrawDataMappingGUI() { EditorGUILayout.LabelField("Mapping", _mainStyle); EditorGUILayout.LabelField("Destination Class"); _destinationClass = (MonoScript)EditorGUILayout.ObjectField(_destinationClass, typeof(MonoScript), true); if (_destinationClass == null) { EditorGUILayout.HelpBox("Please drag a class script that you would like the FBDataSnapshot mapped to.", MessageType.Info); } if (_destinationClass != null) { GenericMappable customClass = (GenericMappable)ScriptableObject.CreateInstance(_destinationClass.GetClass()); customClass.ParseKeys(_dataSnapshot); customClass.Map(_dataSnapshot); Editor.CreateEditor(customClass).OnInspectorGUI(); } }