diff --git a/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs b/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs index 26f62945d..16f586069 100644 --- a/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs +++ b/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs @@ -21,8 +21,12 @@ void OnEnable() mapId_Prop = serializedObject.FindProperty("_mapId"); script = MonoScript.FromScriptableObject(_factory); } + public override void OnInspectorGUI() { + if (_factory == null) + return; + serializedObject.Update(); GUI.enabled = false; @@ -42,32 +46,36 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Layer Visualizers"); - + EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Key"); EditorGUILayout.LabelField("Visualizers"); EditorGUILayout.EndHorizontal(); - for (int i = 0; i < _factory.Visualizers.Count; i++) - { - EditorGUILayout.BeginHorizontal(); - if(_factory.Visualizers[i] != null) - _factory.Visualizers[i].Key = EditorGUILayout.TextField(_factory.Visualizers[i].Key, GUILayout.MaxWidth(100)); - _factory.Visualizers[i] = (LayerVisualizerBase)EditorGUILayout.ObjectField(_factory.Visualizers[i], typeof(LayerVisualizerBase)); - if (GUILayout.Button("-", GUILayout.MaxWidth(20))) + if (_factory.Visualizers != null) + { + for (int i = 0; i < _factory.Visualizers.Count; i++) { - _visualizerList.DeleteArrayElementAtIndex(i); - } + EditorGUILayout.BeginHorizontal(); + if (_factory.Visualizers[i] != null) + _factory.Visualizers[i].Key = EditorGUILayout.TextField(_factory.Visualizers[i].Key, GUILayout.MaxWidth(100)); + _factory.Visualizers[i] = (LayerVisualizerBase)EditorGUILayout.ObjectField(_factory.Visualizers[i], typeof(LayerVisualizerBase)); + + if (GUILayout.Button("-", GUILayout.MaxWidth(20))) + { + _visualizerList.DeleteArrayElementAtIndex(i); + } - EditorGUILayout.EndHorizontal(); + EditorGUILayout.EndHorizontal(); + } } if (GUILayout.Button("Add New Visualizer")) { _factory.Visualizers.Add(null); } - + EditorUtility.SetDirty(_factory); serializedObject.ApplyModifiedProperties(); } } diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs index dd0fd2b7e..31704b475 100644 --- a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs +++ b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs @@ -21,6 +21,12 @@ public class MeshFactory : Factory private Dictionary _tiles; private Dictionary> _layerBuilder; + public void OnEnable() + { + if (Visualizers == null) + Visualizers = new List(); + } + /// /// Sets up the Mesh Factory ///