mirror of
https://github.com/bdunderscore/modular-avatar.git
synced 2025-03-10 07:44:57 +08:00
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:
parent
0fc9f5d86e
commit
926ea255cb
40
Editor/ParamsUsage/ParamsUsagePrefs.cs
Normal file
40
Editor/ParamsUsage/ParamsUsagePrefs.cs
Normal 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
|
||||
}
|
3
Editor/ParamsUsage/ParamsUsagePrefs.cs.meta
Normal file
3
Editor/ParamsUsage/ParamsUsagePrefs.cs.meta
Normal file
@ -0,0 +1,3 @@
|
||||
fileFormatVersion: 2
|
||||
guid: 3ebf965fd4064a52896def62c36c6a90
|
||||
timeCreated: 1713742583
|
@ -47,11 +47,19 @@ namespace nadena.dev.modular_avatar.core.editor
|
||||
(self) => self.OnLanguageChangedCallback());
|
||||
}
|
||||
|
||||
private void OnChange_EnableState(bool enableState)
|
||||
{
|
||||
if (_editor != null)
|
||||
{
|
||||
Rebuild();
|
||||
}
|
||||
}
|
||||
|
||||
private void OnLanguageChangedCallback()
|
||||
{
|
||||
if (_editor != null)
|
||||
{
|
||||
BuildContent();
|
||||
Rebuild();
|
||||
}
|
||||
}
|
||||
|
||||
@ -66,6 +74,8 @@ namespace nadena.dev.modular_avatar.core.editor
|
||||
Object.DestroyImmediate(_editor);
|
||||
_editor = null;
|
||||
}
|
||||
|
||||
ParamsUsagePrefs.OnChange_EnableInfoMenu -= OnChange_EnableState;
|
||||
}
|
||||
|
||||
private void OnAttach(AttachToPanelEvent evt)
|
||||
@ -73,12 +83,20 @@ namespace nadena.dev.modular_avatar.core.editor
|
||||
if (_recursing) return;
|
||||
|
||||
Rebuild();
|
||||
|
||||
ParamsUsagePrefs.OnChange_EnableInfoMenu += OnChange_EnableState;
|
||||
}
|
||||
|
||||
private void Rebuild()
|
||||
{
|
||||
if (parent == null) return;
|
||||
|
||||
if (!ParamsUsagePrefs.instance.enableInfoMenu)
|
||||
{
|
||||
Clear();
|
||||
return;
|
||||
}
|
||||
|
||||
SetRedrawSensor();
|
||||
|
||||
if (_gameObjectEditorElement?.parent != parent)
|
||||
|
@ -5,10 +5,14 @@
|
||||
internal const string TopMenu_EditModeBoneSync = "Tools/Modular Avatar/Sync Bones in Edit Mode";
|
||||
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 int TopMenu_ManualBakeAvatarOrder = 1000;
|
||||
|
||||
internal const string TopMenu_ReloadLocalizations = "Tools/Modular Avatar/Reload Localizations";
|
||||
internal const int TopMenu_ReloadLocalizationsOrder = 1001;
|
||||
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue
Block a user