From 432968f0ab8668322f1d5704d3c65de78a9b5bf3 Mon Sep 17 00:00:00 2001 From: bd_ Date: Thu, 20 Oct 2022 20:53:46 -0700 Subject: [PATCH] Adjustments to BoneProxyEditor UI --- .../Editor/Inspector/BoneProxyEditor.cs | 21 ++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/Packages/net.fushizen.modular-avatar/Editor/Inspector/BoneProxyEditor.cs b/Packages/net.fushizen.modular-avatar/Editor/Inspector/BoneProxyEditor.cs index 9dca9729..01094ffe 100644 --- a/Packages/net.fushizen.modular-avatar/Editor/Inspector/BoneProxyEditor.cs +++ b/Packages/net.fushizen.modular-avatar/Editor/Inspector/BoneProxyEditor.cs @@ -11,7 +11,7 @@ namespace net.fushizen.modular_avatar.core.editor [CustomEditor(typeof(ModularAvatarBoneProxy))] [CanEditMultipleObjects] - public class BoneProxyEditor : Editor + internal class BoneProxyEditor : Editor { private bool foldout = false; @@ -22,7 +22,7 @@ namespace net.fushizen.modular_avatar.core.editor objRefs = new Object[targets.Length]; for (int i = 0; i < targets.Length; i++) { - objRefs[i] = ScriptableObject.CreateInstance(); + objRefs[i] = CreateInstance(); } } @@ -30,6 +30,7 @@ namespace net.fushizen.modular_avatar.core.editor { GameObject parentAvatar = null; + bool suppressTarget = false; for (int i = 0; i < targets.Length; i++) { var t = (ModularAvatarBoneProxy) targets[i]; @@ -38,17 +39,23 @@ namespace net.fushizen.modular_avatar.core.editor if (av != null && parentAvatar == null) parentAvatar = av.gameObject; if (av == null || parentAvatar != av.gameObject) { - base.OnInspectorGUI(); - return; + suppressTarget = true; + break; } ((TempObjRef) objRefs[i]).target = t.target; } - var virtObj = new SerializedObject(objRefs); - var virtProp = virtObj.FindProperty(nameof(TempObjRef.target)); + if (suppressTarget) + { + foldout = true; + } + else + { + var virtObj = new SerializedObject(objRefs); + var virtProp = virtObj.FindProperty(nameof(TempObjRef.target)); + } - var currentTarget = targets.Length != 1 ? null : ((ModularAvatarBoneProxy) targets[0]).target; EditorGUI.BeginChangeCheck(); EditorGUILayout.PropertyField(virtProp, G("boneproxy.target"));