using UnityEngine; using System; using System.Collections; using System.Collections.Generic; using System.Linq; using D2D; using D2D.Databases; using D2D.Gameplay; using D2D.Tools; using D2D.Utilities; using D2D.Utils; using D2DD; using NUnit.Framework; using UnityEditor; using static D2D.Utilities.SettingsFacade; using static D2D.Utilities.CommonLazyFacade; using static D2D.Utilities.CommonGameplayFacade; //using UnityToolbarExtender; namespace D2D { [InitializeOnLoad] public class UnityTopbar : SuperUnityTopbar { private static Transform _selectedTransform; static UnityTopbar() { // ToolbarExtender.LeftToolbarGUI.Add(Left); // ToolbarExtender.RightToolbarGUI.Add(Right); } private static void Left() { if (!_coreData.tools.showLeftTopBar) return; // if (SmallButton("Col", "Collapse folders in project")) // EditorCollapseAll.CollapseFolders(); if (LetterButton("+F", "New folder")) CallMenuItem("Assets/Create/Folder"); if (LetterButton("+M", "New material")) CallMenuItem("Assets/Create/Material"); /*if (LetterButton("+N", "New note")) CallMenuItem("GameObject/StickyNotes/Create note");*/ /*if (SmallButton("DB", "Clear DB")) Shortcuts.ClearDB();*/ /*if (LetterButton("Up️", "Navigate to parent. Cmd+'")) Shortcuts.SelectParent();*/ /*if (SmallButton("Fold", "Fold. Cmd+]")) Shortcuts.FoldParent();*/ if (SmallButton("Scene", "Select scene asset")) Shortcuts.SelectScene(); /*if (SmallButton("Keep", "Keep hierarchy. Ctrl+.")) HierarchyKeeper.Keep();*/ /*if (SmallButton("Mat", "Show material usages in project. Cmd+M")) Shortcuts.SelectChildrenMaterial();*/ /*if (SmallButton("Pack", "Export package")) { var a = AssetsPalette.Instance; if (!a.toExport.IsNullOrEmpty()) { Selection.objects = a.toExport; } CallMenuItem("Assets/Export Package..."); }*/ if (SmallButton("Build")) { CoreSettings.Instance.ApplyProductionData(); CallMenuItem("File/Build Settings..."); return; var pathToScenes = "Assets/Scenes/"; var pathToStarter = "Other/Starter.unity"; // var scenesCount = _coreData.loopRangeLevel.y; var scenes = new List(); scenes.Add(pathToScenes + pathToStarter); // for (int i = 1; i <= scenesCount; i++) // scenes.Add(pathToScenes + _coreData.levelScenePrefix + i + ".unity"); scenes.ForEach(s => Debug.Log(s)); BuildPlayerOptions buildPlayerOptions = new BuildPlayerOptions { scenes = scenes.ToArray(), locationPathName = $"{System.IO.Directory.GetCurrentDirectory()}/Builds/{_coreData.production.appName}.apk", target = BuildTarget.Android, options = BuildOptions.None }; BuildPipeline.BuildPlayer(buildPlayerOptions); // BuildSummary summary = report.summary; // BuildPipeline.BuildPlayer(levels, path + "/BuiltGame.exe", BuildTarget.StandaloneWindows, BuildOptions.None); } if (BigButton("Copy T")) { _selectedTransform = Selection.activeTransform; } if (BigButton("Paste T")) { Selection.activeTransform.position = _selectedTransform.position; Selection.activeTransform.rotation = _selectedTransform.rotation; Selection.activeTransform.localScale = _selectedTransform.localScale; } } private static void Right() { GUILayout.FlexibleSpace(); if (_coreData.tools.showMiddleTopBar) { /*if (LetterButton("P", "Select player")) Shortcuts.SelectPlayer(); if (LetterButton("L", "Select level")) Shortcuts.SelectLevel(); if (LetterButton("C", "Select canvas")) Shortcuts.SelectCanvas();*/ if (TinyButton("1", "Select all objects with tag 1 script")) Shortcuts.SelectTag1(); if (TinyButton("2", "Select all objects with tag 2 script")) Shortcuts.SelectTag2(); if (TinyButton("3", "Select all objects with tag 3 script")) Shortcuts.SelectTag3(); if (TinyButton("4", "Select all objects with tag 4 script")) Shortcuts.SelectTag4(); GUILayout.Space(15); } if (_coreData.tools.showRightTopBar) { /*if (SmallButton("Mesh", "Show mesh usages in project. Cmd+L")) Shortcuts.SelectChildrenMesh();*/ // GUILayout.Space(10); if (LetterButton("C", "Core settings. Cmd+I", Color.blue)) Shortcuts.SelectCoreSettings(); if (LetterButton("G", "Game settings. Cmd+O", Color.blue)) Shortcuts.SelectGameSettings(); if (ButtonTexture(_coreData.tools.icons.effects, 20)) { HierarchyKeeper.Keep(); AssetsPaletteWindow.Init(); } } } private static void CallMenuItem(string t) => EditorApplication.ExecuteMenuItem(t); } }