feat: add menu option to disable "modular avatar information" display (#833)

* feat: add menu option to disable "modular avatar information" display

Closes: #815
This commit is contained in:
bd_ 2024-04-22 09:00:37 +09:00 committed by GitHub
parent 0fc9f5d86e
commit 926ea255cb
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 66 additions and 1 deletions

View File

@ -0,0 +1,40 @@
using System;
using nadena.dev.modular_avatar.ui;
using UnityEditor;
using UnityEngine.Serialization;
namespace nadena.dev.modular_avatar.core.editor
{
#if UNITY_2022_3_OR_NEWER
[FilePath("modular-avatar/ParamsUsagePrefs.asset", FilePathAttribute.Location.PreferencesFolder)]
internal sealed class ParamsUsagePrefs : ScriptableSingleton<ParamsUsagePrefs>
{
public static event Action<bool> OnChange_EnableInfoMenu;
[FormerlySerializedAs("EnableInfoMenu")] public bool enableInfoMenu = true;
[MenuItem(UnityMenuItems.TopMenu_EnableInfo, false, UnityMenuItems.TopMenu_EnableInfoOrder)]
private static void Menu_EnableInfo()
{
ParamsUsagePrefs.instance.enableInfoMenu = !ParamsUsagePrefs.instance.enableInfoMenu;
Menu.SetChecked(UnityMenuItems.TopMenu_EnableInfo, ParamsUsagePrefs.instance.enableInfoMenu);
ParamsUsagePrefs.instance.Save(true);
OnChange_EnableInfoMenu?.Invoke(ParamsUsagePrefs.instance.enableInfoMenu);
}
[InitializeOnLoadMethod]
private static void Initialize()
{
Menu.SetChecked(UnityMenuItems.TopMenu_EnableInfo, ParamsUsagePrefs.instance.enableInfoMenu);
}
}
#else
internal sealed class ParamsUsagePrefs
{
public static ParamsUsagePrefs instance => new ParamsUsagePrefs();
public static event Action<bool> OnChange_EnableInfoMenu;
public bool enableInfoMenu => false;
}
#endif
}

View File

@ -0,0 +1,3 @@
fileFormatVersion: 2
guid: 3ebf965fd4064a52896def62c36c6a90
timeCreated: 1713742583

View File

@ -47,11 +47,19 @@ namespace nadena.dev.modular_avatar.core.editor
(self) => self.OnLanguageChangedCallback()); (self) => self.OnLanguageChangedCallback());
} }
private void OnChange_EnableState(bool enableState)
{
if (_editor != null)
{
Rebuild();
}
}
private void OnLanguageChangedCallback() private void OnLanguageChangedCallback()
{ {
if (_editor != null) if (_editor != null)
{ {
BuildContent(); Rebuild();
} }
} }
@ -66,6 +74,8 @@ namespace nadena.dev.modular_avatar.core.editor
Object.DestroyImmediate(_editor); Object.DestroyImmediate(_editor);
_editor = null; _editor = null;
} }
ParamsUsagePrefs.OnChange_EnableInfoMenu -= OnChange_EnableState;
} }
private void OnAttach(AttachToPanelEvent evt) private void OnAttach(AttachToPanelEvent evt)
@ -73,12 +83,20 @@ namespace nadena.dev.modular_avatar.core.editor
if (_recursing) return; if (_recursing) return;
Rebuild(); Rebuild();
ParamsUsagePrefs.OnChange_EnableInfoMenu += OnChange_EnableState;
} }
private void Rebuild() private void Rebuild()
{ {
if (parent == null) return; if (parent == null) return;
if (!ParamsUsagePrefs.instance.enableInfoMenu)
{
Clear();
return;
}
SetRedrawSensor(); SetRedrawSensor();
if (_gameObjectEditorElement?.parent != parent) if (_gameObjectEditorElement?.parent != parent)

View File

@ -5,10 +5,14 @@
internal const string TopMenu_EditModeBoneSync = "Tools/Modular Avatar/Sync Bones in Edit Mode"; internal const string TopMenu_EditModeBoneSync = "Tools/Modular Avatar/Sync Bones in Edit Mode";
internal const int TopMenu_EditModeBoneSyncOrder = 100; internal const int TopMenu_EditModeBoneSyncOrder = 100;
internal const string TopMenu_EnableInfo = "Tools/Modular Avatar/Show Modular Avatar Information";
internal const int TopMenu_EnableInfoOrder = 101;
internal const string TopMenu_ManualBakeAvatar = "Tools/Modular Avatar/Manual Bake Avatar"; internal const string TopMenu_ManualBakeAvatar = "Tools/Modular Avatar/Manual Bake Avatar";
internal const int TopMenu_ManualBakeAvatarOrder = 1000; internal const int TopMenu_ManualBakeAvatarOrder = 1000;
internal const string TopMenu_ReloadLocalizations = "Tools/Modular Avatar/Reload Localizations"; internal const string TopMenu_ReloadLocalizations = "Tools/Modular Avatar/Reload Localizations";
internal const int TopMenu_ReloadLocalizationsOrder = 1001; internal const int TopMenu_ReloadLocalizationsOrder = 1001;
} }
} }