private void ImportantButtons() { //properties settings.targetProperties = (AgentProperties)EditorGUILayout.ObjectField(new GUIContent("Properties", "Build navmesh using this properties"), settings.targetProperties, typeof(AgentProperties), false); //sellected chunks EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("start x:", GUILayout.MaxWidth(45)); settings.startX = EditorGUILayout.IntField(settings.startX); EditorGUILayout.LabelField("z:", GUILayout.MaxWidth(15)); settings.startZ = EditorGUILayout.IntField(settings.startZ); if (!sellectStart) { if (GUILayout.Button("sellect")) { sellectStart = true; } } else { GUILayout.Label("click"); } EditorGUILayout.EndHorizontal(); EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField("size x:", GUILayout.MaxWidth(45)); settings.sizeX = EditorGUILayout.IntField(settings.sizeX); EditorGUILayout.LabelField("z:", GUILayout.MaxWidth(15)); settings.sizeZ = EditorGUILayout.IntField(settings.sizeZ); if (!sellectEnd) { if (GUILayout.Button("Sellect")) { sellectEnd = true; } } else { GUILayout.Label("Click"); } EditorGUILayout.EndHorizontal(); //upper row of cool buttons GUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Build", "Build navmesh in sellected area"))) { if (settings.targetProperties == null) { Debug.LogWarning("forgot to add properties"); return; } PathFinder.QueueGraph( settings.startX, settings.startZ, settings.targetProperties, settings.sizeX, settings.sizeZ); } if (GUILayout.Button(new GUIContent("Remove", "Remove navmesh from sellected area. Only target area will be removed."))) { PathFinder.RemoveGraph( settings.startX, settings.startZ, settings.targetProperties, settings.sizeX, settings.sizeZ, _redoRemovedGraphs); } _redoRemovedGraphs = GUILayout.Toggle(_redoRemovedGraphs, new GUIContent("", "Queue removed again? If true then we refresh sellected chunks"), GUILayout.MaxWidth(18)); if (GUILayout.Button(new GUIContent("Clear", "Remove all NavMesh. Also stop all work"))) { PathFinder.ClearAll(); Debuger_K.ClearChunksDebug(); } GUILayout.EndHorizontal(); //net row of cool buttons about serialization GUILayout.BeginHorizontal(); if (GUILayout.Button(new GUIContent("Save", "Save all current navmesh into SceneNavmeshData. If it not exist then suggest to create one and pass reference to it into scene helper."))) { PathFinder.SaveCurrentSceneData(); } if (GUILayout.Button(new GUIContent("Load", "Load current SceneNavmeshData from scene helper"))) { PathFinder.LoadCurrentSceneData(); } if (GUILayout.Button(new GUIContent("Delete", "Remove all serialized data from current NavMesh data. Scriptable object remain in project"))) { PathFinder.ClearCurrentData(); } GUILayout.EndHorizontal(); }