static void TouchBar_Manager_OnReady() { TouchBar.Manager.OnReady -= TouchBar_Manager_OnReady; gameGroup = new TouchBar.Group("game", 3); pauseButton = gameGroup.AddImageButton("pause", "/Editor/UniTouchBar/Icons/pause.png", "", () => { EditorApplication.isPaused = !EditorApplication.isPaused; CheckPause(); }); TouchBar.Button space = gameGroup.AddTextButton("space", " "); muteButton = gameGroup.AddTextButton("mute", "mute", () => { EditorUtility.audioMasterMute = !EditorUtility.audioMasterMute; muteButton.Highlight(EditorUtility.audioMasterMute); }); statsButton = gameGroup.AddTextButton("stats", "stats", () => { bool val = !EditGameView.GetFlag("m_Stats"); EditGameView.SetFlag("m_Stats", val); statsButton.Highlight(val); }); maximizeButton = gameGroup.AddImageButton("maximize", "/Editor/UniTouchBar/Icons/resize.png", "", () => { bool val = !EditGameView.GetMaximized(); EditGameView.Maximize(val); maximizeButton.Highlight(val); }); TouchBar.AddGroup(gameGroup); space.Hide(); }
static void Manager_OnReady() { //Ready? We don't need it anymore. - keep it fast! TouchBar.Manager.OnReady -= Manager_OnReady; //--------------------1.GROUP---------------------------- //--Everything is allways stored in groups. settingsGroup = new TouchBar.Group("settingsGroup", 5, () => { TouchBar.Log("Settings Touchbar Loaded - Welcome in debug ;)"); }); //--------------------2.Items----------------------------- //Ok now buttons - all Items are created inside the group ok? websiteButton = settingsGroup.AddTextButton("websiteButton", "Website", () => { //Button cliked. What now? Application.OpenURL("http://imvolute.com/unitouchbar/"); }); //--FAQ BUTTON faqButton = settingsGroup.AddTextButton("faqButton", "FAQ", () => { Application.OpenURL("http://imvolute.com/unitouchbar/faq"); }); //--Ok we have buttons. Let's show the group only on Settings Window ;) //--------------------------3.SHOW------------------------- TouchBar.AddGroup(settingsGroup); //--Let's show the touchbar only on window called "Uni.Settings" (basing on what EditorWindow..titleContent.text says) settingsGroup.ShowOnWindow("Uni.Settings"); //--Do you want to keep this group shown all time? //mainGroup.ShowOnWindow (TouchBar.Windows.ALL); //--------------------That's it!---------------------------- //LET'S ENCHANCE IT! //But we still can make our touchbar more complex. //Eq.Set Colors websiteButton.UpdateBackgroundColor(new Color(0.352941176F, 0, 1)); faqButton.UpdateBackgroundColor(new Color(0.352941176F, 0, 1)); //But nothig happens if you just add dynamic buttons (less efficient) TouchBar.Button moreButton = settingsGroup.AddTextButton("moreButton", "more...", () => { //Maybe we will link some group to the button? DynamicGroup(); }); //We can log to check if everything works. TouchBar.Log(moreButton); //But dynamic items need reloading :( //After adding all items. TouchBar.ReloadGroup(settingsGroup); }
static void TouchBar_Manager_OnReady() { TouchBar.Manager.OnReady -= TouchBar_Manager_OnReady; consoleGroup = new TouchBar.Group("console", 1); clearButton = consoleGroup.AddTextButton("clear", "Clear", () => { EditConsole.Clear(); }); collapse = consoleGroup.AddTextButton("collapse", "Collapse", () => { if (EditConsole.GetFlag(EditConsole.ConsoleFlags.Collapse)) { collapse.UpdateBackgroundColor(new Color(0.26F, 0.26F, 0.26F)); EditConsole.SetFlag(EditConsole.ConsoleFlags.Collapse, false); } else { collapse.UpdateBackgroundColor(new Color(0.5F, 0.5F, 0.5F)); EditConsole.SetFlag(EditConsole.ConsoleFlags.Collapse, true); } }); clearOnPlay = consoleGroup.AddTextButton("clearplay", "ClearOnPlay", () => { if (EditConsole.GetFlag(EditConsole.ConsoleFlags.ClearOnPlay)) { clearOnPlay.UpdateBackgroundColor(new Color(0.26F, 0.26F, 0.26F)); EditConsole.SetFlag(EditConsole.ConsoleFlags.ClearOnPlay, false); } else { clearOnPlay.UpdateBackgroundColor(new Color(0.5F, 0.5F, 0.5F)); EditConsole.SetFlag(EditConsole.ConsoleFlags.ClearOnPlay, true); } }); errorPause = consoleGroup.AddTextButton("errorpause", "ErrorPause", () => { if (EditConsole.GetFlag(EditConsole.ConsoleFlags.ErrorPause)) { errorPause.UpdateBackgroundColor(new Color(0.26F, 0.26F, 0.26F)); EditConsole.SetFlag(EditConsole.ConsoleFlags.ErrorPause, false); } else { errorPause.UpdateBackgroundColor(new Color(0.5F, 0.5F, 0.5F)); EditConsole.SetFlag(EditConsole.ConsoleFlags.ErrorPause, true); } }); TouchBar.AddGroup(consoleGroup); consoleGroup.ShowOnWindow(TouchBar.Windows.Console); consoleGroup.OnShow += ConsoleGroup_OnShow; //cameras.SetOptionWithText(0, "elo", () => { }); }
static void TouchBar_Manager_OnReady() { TouchBar.Manager.OnReady -= TouchBar_Manager_OnReady; editorGroup = new TouchBar.Group("editor", 1, () => { dbutton.Highlight(SceneView.GetFlag("in2DMode")); }); cameras = editorGroup.AddSegments("cameramodes", 6); dbutton = editorGroup.AddTextButton("2d", "2D", () => { bool valu = !SceneView.GetFlag("in2DMode"); SceneView.SetFlag("in2DMode", valu); dbutton.Highlight(valu); }); addbutton = editorGroup.AddImageButton("addgameobject", "/Editor/UniTouchBar/Icons/go.png", "", () => { GameObject gm = new GameObject("GameObject"); Selection.activeGameObject = gm; }); TouchBar.AddGroup(editorGroup); editorGroup.ShowOnWindow(TouchBar.Windows.Scene); editorGroup.ShowOnWindow(TouchBar.Windows.Hierarchy); cameras.SetOptionWithImage(0, "/Editor/UniTouchBar/Icons/hand.png", () => { TouchBar.Log("Option"); Tools.current = Tool.View; }, 35); cameras.SetOptionWithImage(1, "/Editor/UniTouchBar/Icons/move.png", () => { Tools.current = Tool.Move; }, 35); cameras.SetOptionWithImage(2, "/Editor/UniTouchBar/Icons/rotate.png", () => { Tools.current = Tool.Rotate; }, 35); cameras.SetOptionWithImage(3, "/Editor/UniTouchBar/Icons/resize.png", () => { Tools.current = Tool.Scale; }, 35); cameras.SetOptionWithImage(4, "/Editor/UniTouchBar/Icons/transform.png", () => { Tools.current = Tool.Transform; }, 35); cameras.SetOptionWithImage(5, "/Editor/UniTouchBar/Icons/rect.png", () => { Tools.current = Tool.Rect; }, 35); }
//private static TouchBar.Button closeButton; static void DynamicGroup() { //No need to init it double times if (moreGroup == null) { moreGroup = new TouchBar.Group("moreGroup", 6); coolButton = moreGroup.AddTextButton("cool", "made by IMVOLUTE \ud83d\ude0e"); //You can allways add action to already created items. coolButton.onClick = () => { Application.OpenURL("https://imvolute.com"); }; //Making image button - is also easy ;) moreGroup.AddImageButton("close", "/Editor/UniTouchBar/Icons/close.png", "", () => { if (moreGroup != null) //Shit happens - shouldn't but in case of!. { moreGroup.Hide(); } }); //Let's add and show! TouchBar.AddGroup(moreGroup); moreGroup.Show(); //Wow wow - what if we hide settings? This group has to hide too! settingsGroup.OnHidden += () => { if (moreGroup != null) { moreGroup.Hide(); } }; } else { //No need to recreate - just show! moreGroup.Show(); } //Cool idea! What if we chnage more... to more? }
static void Manager_OnReady() { //Ready? We don't need it anymore. - keep it fast! TouchBar.Manager.OnReady -= Manager_OnReady; //--------------------1.GROUP---------------------------- //--Everything is allways stored in groups. sliderGroup = new TouchBar.Group("sliderGroup", 2, () => { TouchBar.Log("Sliders Touchbar Loaded - you can remove it)"); }); //--------------------2.Items----------------------------- showSliderButton = sliderGroup.AddTextButton("slidersButton", "show", () => { //Show group of sliders. DynamicGroup(); }); //--------------------------3.SHOW------------------------- TouchBar.AddGroup(sliderGroup); //--Let's show the touchbar on all windows! for specyfic check Uni.TouchBar.Windows or string (basing on what EditorWindow..titleContent.text says) sliderGroup.ShowOnWindow(Uni.TouchBar.Windows.ALL); //--------------------That's it!---------------------------- }