public override void EditorContent(VisualElement element) { GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.Label("Left Hand", GestureManagerStyles.GuiHandTitle); Manager.left = GestureManagerEditor.OnCheckBoxGuiHand(Manager, GestureHand.Left, Manager.left, position => 0); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label("Right Hand", GestureManagerStyles.GuiHandTitle); Manager.right = GestureManagerEditor.OnCheckBoxGuiHand(Manager, GestureHand.Right, Manager.right, position => 0); GUILayout.EndVertical(); GUILayout.EndHorizontal(); GUILayout.Space(4); GmgLayoutHelper.Divisor(1); GUILayout.Label("Radial Menu", GestureManagerStyles.GuiHandTitle); GUILayout.Label("", GUILayout.ExpandWidth(true), GUILayout.Height(RadialMenu.Size)); var extraSize = RadialMenu.Render(element, GmgLayoutHelper.GetLastRect(ref _rect)) - RadialMenu.Size; if (extraSize > 0) { GUILayout.Label("", GUILayout.ExpandWidth(true), GUILayout.Height(extraSize)); } if (_radialDescription != null) { ShowRadialDescription(); } }
private void ManagerGui() { GUILayout.Label("Gesture Manager 3.1", GestureManagerStyles.TitleStyle); if (Manager.Module != null) { if (Manager.Module.IsInvalid()) { Manager.UnlinkModule(); } GmgLayoutHelper.ObjectField("Controlling Avatar: ", Manager.Module.Avatar, newObject => { if (newObject) { var module = ModuleHelper.GetModuleForDescriptor(Manager, newObject.GetComponent <VRC.SDKBase.VRC_AvatarDescriptor>()); if (module == null || !module.IsValidDesc()) { return; } Manager.SetModule(module); } else { Manager.UnlinkModule(); } }); if (Manager.Module == null) { return; } GUILayout.BeginHorizontal(); Manager.Module.EditorHeader(); GUILayout.EndHorizontal(); Manager.Module.EditorContent(_root); } else { if (EditorApplication.isPlaying) { if (Manager.enabled && Manager.gameObject.activeInHierarchy) { if (Manager.GetLastCheckedActiveDescriptors().Count == 0) { GUILayout.Label("There are no VRC_AvatarDescriptor on your scene. \nPlease consider adding one to your avatar before entering in PlayMode.", GestureManagerStyles.TextError); } else { var eligible = Manager.GetLastCheckedActiveDescriptors().Where(module => module.IsValidDesc()).ToList(); var nonEligible = Manager.GetLastCheckedActiveDescriptors().Where(module => !module.IsValidDesc()).ToList(); GUILayout.Label(eligible.Count == 0 ? "No one of your VRC_AvatarDescriptor are eligible." : "Eligible VRC_AvatarDescriptors:", GestureManagerStyles.SubHeader); foreach (var module in eligible) { EditorGUILayout.BeginHorizontal(new GUIStyle(GUI.skin.box)); GUILayout.Label(module.AvatarDescriptor.gameObject.name + ":", GUILayout.Width(Screen.width - 131)); if (GUILayout.Button("Set As Avatar", GUILayout.Width(100))) { Manager.SetModule(module); } GUILayout.EndHorizontal(); } if (eligible.Count != 0 && nonEligible.Count != 0) { GUILayout.Label("Non-Eligible VRC_AvatarDescriptors:", GestureManagerStyles.SubHeader); } foreach (var module in nonEligible) { GUILayout.BeginVertical(GestureManagerStyles.EmoteError); GUILayout.Label(module.AvatarDescriptor.gameObject.name + ":"); foreach (var error in module.GetErrors()) { GUILayout.Label(error, GestureManagerStyles.TextError); } GUILayout.EndVertical(); } } if (GUILayout.Button("Check Again")) { CheckActiveDescriptors(); } } else { GUILayout.Label("I'm disabled!", GestureManagerStyles.TextError); } } else { GUILayout.Label("I'm an useless script if you aren't on play mode :D", GestureManagerStyles.MiddleStyle); GUILayout.BeginHorizontal(); GUILayout.FlexibleSpace(); GUI.enabled = !Manager.inWebClientRequest; if (GUILayout.Button("Check For Updates", GUILayout.Width(130))) { CheckForUpdates(); } GUILayout.Space(20); if (GUILayout.Button("My Discord Name", GUILayout.Width(130))) { CheckDiscordName(); } GUI.enabled = true; GUILayout.FlexibleSpace(); GUILayout.EndHorizontal(); } } GUILayout.Label($"Script made by {BsxName}", GestureManagerStyles.BottomStyle); }
public override void EditorContent(VisualElement element) { GUILayout.Space(15); GmgLayoutHelper.MyToolbar(ref _toolBar, new[] { new GmgLayoutHelper.GmgToolbarRow("Gestures", () => { if (Manager.emote != 0 || Manager.onCustomAnimation) { GUILayout.BeginHorizontal(GestureManagerStyles.EmoteError); GUILayout.Label("Gesture doesn't work while you're playing an emote!"); if (GUILayout.Button("Stop!", GestureManagerStyles.GuiGreenButton)) { Manager.StopCurrentEmote(); } GUILayout.EndHorizontal(); } GUILayout.BeginHorizontal(); GUILayout.BeginVertical(); GUILayout.Label("Left Hand", GestureManagerStyles.GuiHandTitle); Manager.left = GestureManagerEditor.OnCheckBoxGuiHand(Manager, GestureHand.Left, Manager.left, position => 0); GUILayout.EndVertical(); GUILayout.BeginVertical(); GUILayout.Label("Right Hand", GestureManagerStyles.GuiHandTitle); Manager.right = GestureManagerEditor.OnCheckBoxGuiHand(Manager, GestureHand.Right, Manager.right, position => 0); GUILayout.EndVertical(); GUILayout.EndHorizontal(); }), new GmgLayoutHelper.GmgToolbarRow("Emotes", () => { GUILayout.Label("Emotes", GestureManagerStyles.GuiHandTitle); GestureManagerEditor.OnEmoteButton(Manager, 1); GestureManagerEditor.OnEmoteButton(Manager, 2); GestureManagerEditor.OnEmoteButton(Manager, 3); GestureManagerEditor.OnEmoteButton(Manager, 4); GestureManagerEditor.OnEmoteButton(Manager, 5); GestureManagerEditor.OnEmoteButton(Manager, 6); GestureManagerEditor.OnEmoteButton(Manager, 7); GestureManagerEditor.OnEmoteButton(Manager, 8); }), new GmgLayoutHelper.GmgToolbarRow("Test Animation", () => { GUILayout.Label("Force animation.", GestureManagerStyles.GuiHandTitle); GUILayout.BeginHorizontal(); var lastAnim = _selectingCustomAnim; _selectingCustomAnim = (AnimationClip)EditorGUILayout.ObjectField("Animation: ", _selectingCustomAnim, typeof(AnimationClip), true, null); if (_selectingCustomAnim != lastAnim) { Manager.SetCustomAnimation(_selectingCustomAnim); } if (Manager.onCustomAnimation) { if (GUILayout.Button("Stop", GestureManagerStyles.GuiGreenButton)) { Manager.OnCustomEmoteStop(); } } else { if (GUILayout.Button("Play", GUILayout.Width(100))) { Manager.StopCurrentEmote(); Manager.SetCustomAnimation(_selectingCustomAnim); Manager.OnCustomEmoteStart(); } } GUILayout.EndHorizontal(); }) }); }