From e7ec5b08b4d25bc10782ac48c7ad74c4a5094b04 Mon Sep 17 00:00:00 2001 From: bd_ Date: Fri, 9 Dec 2022 11:40:16 -0800 Subject: [PATCH] Add warning in inspector UI for incompatible VRCSDK versions. (#147) --- .../Editor/ComponentAllowlistPatch.cs | 4 ++++ .../Editor/Inspector/InspectorCommon.cs | 6 ++++++ .../Editor/Inspector/MAEditorBase.cs | 1 + .../nadena.dev.modular-avatar/Editor/Localization/en.json | 3 ++- .../nadena.dev.modular-avatar/Editor/Localization/ja.json | 3 ++- 5 files changed, 15 insertions(+), 2 deletions(-) diff --git a/Packages/nadena.dev.modular-avatar/Editor/ComponentAllowlistPatch.cs b/Packages/nadena.dev.modular-avatar/Editor/ComponentAllowlistPatch.cs index cf5a6847..62b389db 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/ComponentAllowlistPatch.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/ComponentAllowlistPatch.cs @@ -33,15 +33,19 @@ namespace nadena.dev.modular_avatar.core.editor [InitializeOnLoad] internal static class ComponentAllowlistPatch { + internal static readonly bool PATCH_OK; + static ComponentAllowlistPatch() { try { PatchAllowlist(); + PATCH_OK = true; } catch (Exception e) { Debug.LogException(e); + PATCH_OK = false; } } diff --git a/Packages/nadena.dev.modular-avatar/Editor/Inspector/InspectorCommon.cs b/Packages/nadena.dev.modular-avatar/Editor/Inspector/InspectorCommon.cs index 732ea9cd..f51f825f 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/Inspector/InspectorCommon.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/Inspector/InspectorCommon.cs @@ -1,6 +1,7 @@ using UnityEditor; using UnityEditor.Experimental.SceneManagement; using UnityEngine; +using UnityEngine.SocialPlatforms; namespace nadena.dev.modular_avatar.core.editor { @@ -19,5 +20,10 @@ namespace nadena.dev.modular_avatar.core.editor EditorGUILayout.HelpBox(Localization.S("hint.not_in_avatar"), MessageType.Warning); } } + + public static void DisplayVRCSDKVersionWarning() + { + EditorGUILayout.HelpBox(Localization.S("hint.bad_vrcsdk"), MessageType.Error); + } } } \ No newline at end of file diff --git a/Packages/nadena.dev.modular-avatar/Editor/Inspector/MAEditorBase.cs b/Packages/nadena.dev.modular-avatar/Editor/Inspector/MAEditorBase.cs index 275f2f71..3d9cd96e 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/Inspector/MAEditorBase.cs +++ b/Packages/nadena.dev.modular-avatar/Editor/Inspector/MAEditorBase.cs @@ -116,6 +116,7 @@ namespace nadena.dev.modular_avatar.core.editor } InspectorCommon.DisplayOutOfAvatarWarning(targets); + if (!ComponentAllowlistPatch.PATCH_OK) InspectorCommon.DisplayVRCSDKVersionWarning(); OnInnerInspectorGUI(); } diff --git a/Packages/nadena.dev.modular-avatar/Editor/Localization/en.json b/Packages/nadena.dev.modular-avatar/Editor/Localization/en.json index 557d0e21..5de6d42d 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/Localization/en.json +++ b/Packages/nadena.dev.modular-avatar/Editor/Localization/en.json @@ -53,5 +53,6 @@ "boneproxy.attachment": "Attachment mode", "boneproxy.attachment.AsChildAtRoot": "As child; at root", "boneproxy.attachment.AsChildKeepWorldPosition": "As child; keep position", - "pb_blocker.help": "This object will not be affected by PhysBones attached to parents." + "pb_blocker.help": "This object will not be affected by PhysBones attached to parents.", + "hint.bad_vrcsdk": "Incompatible version of VRCSDK detected.\n\nPlease try upgrading your VRCSDK; if this does not work, check for a newer version of Modular Avatar as well." } \ No newline at end of file diff --git a/Packages/nadena.dev.modular-avatar/Editor/Localization/ja.json b/Packages/nadena.dev.modular-avatar/Editor/Localization/ja.json index da29cbf7..dc561d6b 100644 --- a/Packages/nadena.dev.modular-avatar/Editor/Localization/ja.json +++ b/Packages/nadena.dev.modular-avatar/Editor/Localization/ja.json @@ -53,5 +53,6 @@ "boneproxy.attachment": "配置モード", "boneproxy.attachment.AsChildAtRoot": "子として・ルートに配置", "boneproxy.attachment.AsChildKeepWorldPosition": "子として・ワールド位置を維持", - "pb_blocker.help": "このオブジェクトは親のPhysBoneから影響を受けなくなります。" + "pb_blocker.help": "このオブジェクトは親のPhysBoneから影響を受けなくなります。", + "hint.bad_vrcsdk": "使用中のVRCSDKのバージョンとは互換性がありません。\n\nVRCSDKを更新してみてください。それでもだめでしたら、Modular Avatarにも最新版が出てないかチェックしてください。" }