Exemple #1
0
        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();
        }