From b748803a52160117a28a3952f7e6811661e5b24b Mon Sep 17 00:00:00 2001 From: brnkhy Date: Sat, 29 Apr 2017 01:06:51 +0300 Subject: [PATCH 1/2] fix mesh factory editor script null ref errors and not saving on change --- .../Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs b/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs index 92d13d901..b902a82be 100644 --- a/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs +++ b/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs @@ -17,8 +17,12 @@ void OnEnable() _visualizerList = serializedObject.FindProperty("Visualizers"); script = MonoScript.FromScriptableObject(_factory); } + public override void OnInspectorGUI() { + if (_factory == null || _factory.Visualizers == null) + return; + serializedObject.Update(); GUI.enabled = false; @@ -28,7 +32,7 @@ public override void OnInspectorGUI() EditorGUILayout.Space(); EditorGUILayout.Space(); EditorGUILayout.LabelField("Layer Visualizers"); - + EditorGUILayout.Space(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("Key"); @@ -37,7 +41,7 @@ public override void OnInspectorGUI() for (int i = 0; i < _factory.Visualizers.Count; i++) { EditorGUILayout.BeginHorizontal(); - if(_factory.Visualizers[i] != null) + 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)); @@ -53,7 +57,7 @@ public override void OnInspectorGUI() { _factory.Visualizers.Add(null); } - + EditorUtility.SetDirty(_factory); serializedObject.ApplyModifiedProperties(); } } From e1e4c776e74ff5edfa6004c67958e53dac95c529 Mon Sep 17 00:00:00 2001 From: brnkhy Date: Mon, 1 May 2017 20:06:07 +0300 Subject: [PATCH 2/2] fix an issue where terrain factory visualizers list isn't getting initialized --- .../Core/Unity/Editor/MeshFactoryEditor.cs | 26 +++++++++++-------- .../MeshGeneration/Factories/MeshFactory.cs | 6 +++++ 2 files changed, 21 insertions(+), 11 deletions(-) diff --git a/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs b/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs index b902a82be..af379cb9f 100644 --- a/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs +++ b/sdkproject/Assets/Mapbox/Core/Unity/Editor/MeshFactoryEditor.cs @@ -20,7 +20,7 @@ void OnEnable() public override void OnInspectorGUI() { - if (_factory == null || _factory.Visualizers == null) + if (_factory == null) return; serializedObject.Update(); @@ -38,19 +38,23 @@ public override void OnInspectorGUI() 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)); - EditorGUILayout.EndHorizontal(); + if (GUILayout.Button("-", GUILayout.MaxWidth(20))) + { + _visualizerList.DeleteArrayElementAtIndex(i); + } + + EditorGUILayout.EndHorizontal(); + } } if (GUILayout.Button("Add New Visualizer")) diff --git a/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs b/sdkproject/Assets/Mapbox/Core/Unity/MeshGeneration/Factories/MeshFactory.cs index 8f1d190eb..e6ff6950f 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 ///