/// <summary> /// Local files section /// Upload or delete a particulary local file /// Upload all local files /// </summary> void UploadLogs() { EditorGUILayout.HelpBox("All Local Files", MessageType.None); GUITools.ActionButton("Send all logs to FTP", Saver.UploadAllFilesToFTP, Color.white, Color.black); EditorGUILayout.Space(); ScrollVector = EditorGUILayout.BeginScrollView(ScrollVector); for (int i = 0; i < LocalFilesInfos.Count; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox(LocalFilesInfos[i].LogName, MessageType.None); GUITools.ActionButton("Open", OpenFile, LocalFilesInfos[i].LogName, Color.green, Color.black); if (!LocalFilesInfos[i].IsLoading) { GUITools.ActionButton("Upload", Saver.UploadFileToFTP, LocalFilesInfos[i], Color.cyan, Color.black); } else { EditorGUILayout.HelpBox("Uploading", MessageType.None); } GUITools.ActionButton("X", DeleteLocalLog, i, Color.red, Color.black); EditorGUILayout.EndHorizontal(); } EditorGUILayout.EndScrollView(); EditorGUILayout.Space(); GUITools.ActionButton("Open Folder", OpenLocalFolder, Color.white, Color.black); }
/// <summary> /// Enable Logs /// Show every user and its settings /// </summary> public override void OnInspectorGUI() { EditorGUILayout.BeginHorizontal(); EditorGUILayout.HelpBox("Enable ALL logs", MessageType.None); p_target.EnableAllLogs = EditorGUILayout.Toggle(p_target.EnableAllLogs); EditorGUILayout.EndHorizontal(); // EditorGUILayout.Space(); // if (p_target.AllUsers.Count > 0) { for (int i = 0; i < p_target.AllUsers.Count; i++) { DrawUserSettings(p_target.AllUsers[i]); GUITools.ActionButton("X Delete user", p_target.RemoveUser, i, Color.red, Color.black); EditorGUILayout.Space(); } } EditorGUILayout.Space(); EditorGUILayout.Space(); tmpName = EditorGUILayout.TextField(tmpName); GUITools.ActionButton("+ Add User", AddUser, Color.green, Color.black); EditorGUILayout.Space(); }
/// <summary> /// Display settings /// </summary> void DrawSettings() { // Draw a header for the Spawner Area global settings EditorGUILayout.LabelField("Global settings", TDS_EditorUtility.HeaderStyle); TDS_EditorUtility.Toggle("is Looping", "Is the area start again when all the waves are cleared.", isLooping); TDS_EditorUtility.Toggle("Is Activated by event", "Does the area start by event or by trigger.", isActivatedByEvent); GUILayout.Space(10); EditorGUILayout.BeginHorizontal(); if (TDS_EditorUtility.Button("WAVES", "Wrap / Unwrap Waves", TDS_EditorUtility.HeaderStyle)) { AreWavesUnfolded = !areWavesUnfolded; } GUITools.ActionButton("Add Wave", waves.InsertArrayElementAtIndex, waves.arraySize, Color.white, Color.white); EditorGUILayout.EndHorizontal(); if (areWavesUnfolded) { for (int i = 0; i < waves.arraySize; i++) { GUILayout.Space(10); DrawWave(i); } } }
void ManageObjects() { for (int t = 0; t < p_target.AllSpritesToMove.Count; t++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.ObjectField(p_target.AllSpritesToMove[t], typeof(Sprite), true); GUITools.ActionButton("X", p_target.RemoveSpriteAt, t, Color.red, Color.black); EditorGUILayout.EndHorizontal(); } }
public override void OnInspectorGUI() { DropAeraGUI(); ManageObjects(); EditorGUILayout.Space(); EditorGUILayout.Space(); GUITools.ActionButton("Rotate sprites", MakeSpriteRotate, Color.yellow, Color.black); EditorGUILayout.Space(); EditorGUILayout.Space(); GUITools.ActionButton("Clear", p_target.RemoveAllSprites, Color.red, Color.black); }
public override void OnInspectorGUI() { if (p_target.AllLogs.Count > 0) { GUITools.ActionButton("Save last log entry", p_target.SaveLogs, Color.white, Color.black); } EditorGUILayout.HelpBox("Log entries ", MessageType.None); GUITools.ActionButton("Local log entries", OpenLogsWindow, LogType.Local, Color.white, Color.black); GUITools.ActionButton("FTP log entries", OpenLogsWindow, LogType.OnServer, Color.white, Color.black); }
void DrawNavMeshBuilder() { EditorGUILayout.HelpBox("Custom Nav Mesh Baking\nSet NavSurfaces on the scene to bake the custom NavMesh", MessageType.None); GUITools.ActionButton("Bake NavPoints from MeshSurfaces", p_target.GetNavPointsFromNavSurfaces, Color.white, Color.black); GUITools.ActionButton("Clear NavMesh", p_target.ClearNavDatas, Color.white, Color.black); GUITools.ActionButton("Save Datas", p_target.SaveDatas, Color.white, Color.black); GUITools.ActionButton("Open Saving Folder", p_target.OpenDirectory, Color.white, Color.black); EditorGUILayout.Space(); p_target.ShowVertices = EditorGUILayout.Toggle("Show Vertices", p_target.ShowVertices); p_target.ShowSegments = EditorGUILayout.Toggle("Show Segment", p_target.ShowSegments); p_target.ShowMiddle = EditorGUILayout.Toggle("Show Middle", p_target.ShowMiddle); p_target.ShowLinks = EditorGUILayout.Toggle("Show Links", p_target.ShowLinks); }
/// <summary> /// FTP Files section /// Download a particulary file /// Download all files /// </summary> void DownLoadLogs() { EditorGUILayout.HelpBox("All FTP Files", MessageType.None); GUITools.ActionButton("Download all logs", Saver.DownloadAllFilesFromFTP, Color.white, Color.black); EditorGUILayout.Space(); ScrollVector = EditorGUILayout.BeginScrollView(ScrollVector); for (int i = 0; i < FTPFilesInfos.Count; i++) { GUITools.ActionButton(FTPFilesInfos[i], Saver.DownloadFileFromFTP, FTPFilesInfos[i], Color.cyan, Color.black); } EditorGUILayout.EndScrollView(); EditorGUILayout.Space(); GUITools.ActionButton("Update logs on FTP", Saver.GetAllFTPFilesNames, Color.white, Color.black); }
/// <summary> /// Draw the split settings /// </summary> private void DrawSplittingSettings() { if (IsEnemyUnfolded) { EditorGUILayout.Space(); EditorGUILayout.BeginVertical("Box"); //Draw a header for the enemy spinning settings if (TDS_EditorUtility.Button("Splitting Enemies", "Wrap / unwrap splitting enemies", TDS_EditorUtility.HeaderStyle)) { AreSplittingSettingsUnfolded = !areSplittingSettingsUnfolded; } if (areSplittingSettingsUnfolded) { EditorGUILayout.Space(); for (int i = 0; i < splitingEnemiesNames.arraySize; i++) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.LabelField(splitingEnemiesNames.GetArrayElementAtIndex(i).stringValue, TDS_EditorUtility.HeaderStyle); GUITools.ActionButton("X", RemoveSettingsAtIndex, i, Color.white, Color.black, "Remove this spliting enemy"); Repaint(); serializedObject.ApplyModifiedProperties(); EditorGUILayout.EndHorizontal(); } EditorGUILayout.Space(); TDS_Enemy _e = null; _e = EditorGUILayout.ObjectField("Add Splitting Enemy", _e, typeof(TDS_Enemy), false) as TDS_Enemy; if (_e != null) { splitingEnemiesNames.InsertArrayElementAtIndex(0); splitingEnemiesNames.GetArrayElementAtIndex(0).stringValue = _e.EnemyName; splitingPosition.InsertArrayElementAtIndex(0); splitingPosition.GetArrayElementAtIndex(0).vector3Value = Vector3.forward; Repaint(); } EditorGUILayout.Space(); TDS_EditorUtility.ObjectField("Splitting Portrait", "Portrait of the splitting enemies", splittingPortrait, typeof(GameObject)); serializedObject.ApplyModifiedProperties(); } EditorGUILayout.EndVertical(); EditorGUILayout.Space(); } }
private void OnGUI() { switch (CurrentType) { case LogType.Local: UploadLogs(); break; case LogType.OnServer: DownLoadLogs(); break; default: break; } GUITools.ActionButton("Close", Close, Color.red, Color.black); }
/// <summary> /// Show the point manager settings /// Edit its position /// Edit all waves in the manager /// </summary> void ShowPointManagerSettings() { GUI.color = Color.red; EditorGUILayout.HelpBox("Point Manager Settings", MessageType.None); GUI.color = Color.white; p_target.PointsManager.Position = EditorGUILayout.Vector3Field("Manager Position", p_target.PointsManager.Position); GUI.color = Color.cyan; EditorGUILayout.HelpBox("WAVES", MessageType.None); for (int i = 0; i < p_target.PointsManager.AllWavePoints.Count; i++) { ShowWaveSettings(p_target.PointsManager.AllWavePoints[i]); GUITools.ActionButton("Remove Wave point", RemoveWavePoint, i, Color.white, Color.black); EditorGUILayout.Space(); } EditorGUILayout.Space(); GUITools.ActionButton("Add Wave point", p_target.PointsManager.AddWavePoint, Color.white, Color.black); }
private void OnGUI() { WavePoint.Position = EditorGUILayout.Vector3Field("Point Position", WavePoint.Position); WavePoint.Range = EditorGUILayout.Slider("Spawn Range", WavePoint.Range, 1, 10); WavePoint.WaveNumber = EditorGUILayout.IntField("Wave Number", WavePoint.WaveNumber); // STATIC WAVE ELEMENT ShowWaveElementSettings(WavePoint.StaticWaveElement); EditorGUILayout.Space(); // RANDOM WAVE ELEMENT ShowWaveElementSettings(WavePoint.RandomWaveElement); EditorGUILayout.Space(); GUITools.ActionButton("Close", Close, Color.red, Color.black); }
/// <summary> /// Draw the wave settings /// </summary> /// <param name="_index">indew of the wave in the array</param> void DrawWave(int _index) { Color _originalColor = GUI.backgroundColor; GUI.backgroundColor = Color.white; //Get the serialized Property SerializedProperty _prop = serializedObject.FindProperty($"{waves.name}").GetArrayElementAtIndex(_index); float _size = 50; if (_prop.FindPropertyRelative("isWaveFoldOut").boolValue) { _size += (_prop.FindPropertyRelative("spawnPoints").arraySize + 1) * 25; } // Get the last rect drawn Rect _lastRect = GUILayoutUtility.GetLastRect(); EditorGUILayout.BeginVertical("HelpBox"); // Set a new based on the last rect position Rect _r = new Rect(_lastRect.position.x, _lastRect.position.y + 4, _lastRect.width, _size); // Reserve the rect _r = GUILayoutUtility.GetRect(_r.width, _r.height, GUIStyle.none); GUIContent _content = new GUIContent($"Wave n°{_index}"); // Draw the Wave Editor EditorGUI.PropertyField(_r, _prop, _content); EditorGUILayout.BeginHorizontal(); if (GUILayout.Button("▲") && _index > 0) { waves.MoveArrayElement(_index, _index - 1); } if (GUILayout.Button("▼") && _index < serializedObject.FindProperty($"{waves.name}").arraySize - 1) { waves.MoveArrayElement(_index, _index + 1); } EditorGUILayout.EndHorizontal(); // Draw a button to destroy the wave GUITools.ActionButton("Delete Wave", waves.DeleteArrayElementAtIndex, _index, Color.red, Color.black); EditorGUILayout.EndVertical(); GUI.backgroundColor = _originalColor; }
private void OnGUI() { EditorGUILayout.Space(); EditorGUILayout.HelpBox("CUSTOM NAV MESH BUILDER", MessageType.None, true); EditorGUILayout.Space(); GUITools.ActionButton("Build Navigation Datas", GetNavPointsFromNavSurfaces, Color.white, Color.black); if (isBuilding) { GUITools.ActionButton("Clear Navigation Datas", () => Debug.Log("Building"), Color.grey, Color.white); } else { GUITools.ActionButton("Clear Navigation Datas", ClearNavDatas, Color.white, Color.black); } GUITools.ActionButton("Open Saving Folder", OpenDirectory, Color.white, Color.black); if (NavMeshSurface.activeSurfaces.Count == 0) { EditorGUILayout.HelpBox("You must add nav mesh surfaces to build the datas", MessageType.Error, true); } }
/// <summary> /// Edit wave element /// Edit type and number of enemies /// </summary> /// <param name="_element">Element to Edit</param> void ShowWaveElementSettings(TDS_WaveElement _element) { // COLOR GUI.color = Color.blue; EditorGUILayout.HelpBox("Wave Element", MessageType.None); GUI.color = Color.white; // ENEMIES AND COUNT TDS_Enemy _enemy = null; _enemy = EditorGUILayout.ObjectField(_enemy, typeof(TDS_Enemy), false) as TDS_Enemy; if (_enemy != null && !_element.EnemiesSpawn.Any(e => e.SpawningEnemy == _enemy)) { _element.AddElement(_enemy); } for (int i = 0; i < _element.EnemiesSpawn.Count; i++) { EditorGUILayout.LabelField(_element.EnemiesSpawn[i].SpawningEnemy.PrefabName.ToString()); _element.EnemiesSpawn[i].NumberOfEnemies = EditorGUILayout.IntSlider("Enemy count", _element.EnemiesSpawn[i].NumberOfEnemies, 0, 10); GUITools.ActionButton("Remove Element", _element.RemoveElement, i, Color.white, Color.black); } }
/* TDS_WaveElementEditor : * * ##################### * ###### PURPOSE ###### * ##################### * * Editor of the WaveElement class * * ##################### * ### MODIFICATIONS ### * ##################### * * Date : [12/02/2019] * Author : [THIEBAUT Alexis] * * Changes : * * [Initialisation de la class TDS_WaveElementEditor] * - Implémentation de la méthode OnGUI pour afficher les settings de WaveElement * * ----------------------------------- */ #region Methods public override void OnGUI(Rect position, SerializedProperty property, GUIContent label) { //Int sliders to display and modify the min and max random Spawn Rect _rect = new Rect(0, 0, 0, 0); if (property.FindPropertyRelative("minRandomSpawn").arraySize == 0) { for (int i = 0; i < 4; i++) { property.FindPropertyRelative("minRandomSpawn").InsertArrayElementAtIndex(0); property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue = 0; } } if (property.FindPropertyRelative("maxRandomSpawn").arraySize == 0) { for (int i = 0; i < 4; i++) { property.FindPropertyRelative("maxRandomSpawn").InsertArrayElementAtIndex(0); property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue = 1; } } for (int i = 0; i < property.FindPropertyRelative("minRandomSpawn").arraySize; i++) { _rect = new Rect(position.position.x, position.position.y + (75 * i), position.width - 25, 20); EditorGUI.LabelField(_rect, $"{i + 1} Players", TDS_EditorUtility.HeaderStyle); _rect = new Rect(position.position.x, position.position.y + 25 + (75 * i), position.width - 25, 20); property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue = EditorGUI.IntSlider(_rect, $"Min Random Spawn for {i + 1} player", property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue, 0, property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue); _rect = new Rect(position.position.x, position.position.y + (50 + (75 * i)), position.width - 25, 20); property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue = EditorGUI.IntSlider(_rect, $"Max Random Spawn for {i + 1} player", property.FindPropertyRelative("maxRandomSpawn").GetArrayElementAtIndex(i).intValue, property.FindPropertyRelative("minRandomSpawn").GetArrayElementAtIndex(i).intValue, 10); } for (int i = 0; i < 50; i++) { EditorGUILayout.Space(); } GUILayout.BeginVertical("Box"); GUILayout.Label("Normal Spawns", TDS_EditorUtility.HeaderStyle); // Display the settings of the normal spawning Informations for (int i = 0; i < property.FindPropertyRelative("spawningInformations").arraySize; i++) { EditorGUILayout.PropertyField(property.FindPropertyRelative($"spawningInformations.Array.data[{i}]")); //Create a button to remove the spawning informations GUITools.ActionButton("Delete this info", property.FindPropertyRelative($"spawningInformations.Array").DeleteArrayElementAtIndex, i, Color.white, Color.black); } GUILayout.EndVertical(); //GUI.backgroundColor = TDS_EditorUtility.BoxDarkColor; GUILayout.BeginVertical("Box"); GUILayout.Label("Random Spawns", TDS_EditorUtility.HeaderStyle); // Display the settings of the random spawning Informations for (int i = 0; i < property.FindPropertyRelative("randomSpawningInformations").arraySize; i++) { EditorGUILayout.PropertyField(property.FindPropertyRelative($"randomSpawningInformations.Array.data[{i}]")); //Create a button to remove the spawning informations GUITools.ActionButton("Delete this info", property.FindPropertyRelative($"randomSpawningInformations.Array").DeleteArrayElementAtIndex, i, Color.white, Color.black); } GUILayout.Space(5); GUILayout.EndVertical(); }
/// <summary> /// Button to show the point editor window /// </summary> /// <param name="_point">point to edit</param> void ShowWaveSettings(TDS_WavePoint _point) { GUITools.ActionButton($"Edit {_point.Name}", OpenPointWindow, _point, Color.white, Color.black); }