Skip to content

Commit

Permalink
fix: Foldout の状態保存を EditorPrefs から SerializedProperty.isExpanded に切り替え
Browse files Browse the repository at this point in the history
  • Loading branch information
pspkurara committed Sep 8, 2020
1 parent a9e2df6 commit 17de2e8
Showing 1 changed file with 13 additions and 27 deletions.
40 changes: 13 additions & 27 deletions Packages/uGUI-Skinner/Editor/UISkinnerInspector.cs
Original file line number Diff line number Diff line change
Expand Up @@ -15,8 +15,6 @@ namespace Pspkurara.UI
internal partial class UISkinnerInspector : Editor
{

const string FOLDOUT_EDITOR_PREFS_KEY = "COMPONENT_SKINNER_FOLDOUT_";

public static class FieldName
{
public const string StyleIndex = "m_StyleIndex";
Expand Down Expand Up @@ -107,19 +105,19 @@ public override void OnInspectorGUI()
for (int skinStylesIndex = 0; skinStylesIndex < m_SkinStyles.arraySize; skinStylesIndex++)
{

SerializedProperty objProp = m_SkinStyles.GetArrayElementAtIndex(skinStylesIndex).FindPropertyRelative(FieldName.Parts);
SerializedProperty styleKey = m_SkinStyles.GetArrayElementAtIndex(skinStylesIndex).FindPropertyRelative(FieldName.StyleKey);
var skinStyleElementProperty = m_SkinStyles.GetArrayElementAtIndex(skinStylesIndex);
var objProp = skinStyleElementProperty.FindPropertyRelative(FieldName.Parts);
var styleKey = skinStyleElementProperty.FindPropertyRelative(FieldName.StyleKey);

GUIStyle style = (edittedCurrentStyle == skinStylesIndex) ? EditorConst.HighLightFoldoutStyle : EditorConst.NormalFoldoutStyle;

bool hasStyleKey = !string.IsNullOrEmpty(styleKey.stringValue);

EditorGUILayout.BeginHorizontal();
m_SkinFoldoutTitle.text = hasStyleKey ? string.Format(EditorConst.SkinFoldTitleHasStyleKey, skinStylesIndex, styleKey.stringValue) : string.Format(EditorConst.SkinFoldTitle, skinStylesIndex);
bool foldOut = EditorGUILayout.Foldout(GetFoldOut(skinStylesIndex), m_SkinFoldoutTitle, style);
SetFoldOut(skinStylesIndex, foldOut);
skinStyleElementProperty.isExpanded = EditorGUILayout.Foldout(skinStyleElementProperty.isExpanded, m_SkinFoldoutTitle, style);

if (GetFoldOut(skinStylesIndex))
if (skinStyleElementProperty.isExpanded)
{
EditorGUILayout.EndHorizontal();

Expand Down Expand Up @@ -191,7 +189,7 @@ public override void OnInspectorGUI()
})) return;
EditorGUILayout.EndHorizontal();

if (foldOut)
if (skinStyleElementProperty.isExpanded)
{
EditorGUILayout.Space();
SkinnerEditorUtility.DrawLine();
Expand All @@ -204,6 +202,13 @@ public override void OnInspectorGUI()

if (SkinnerEditorUtility.DrawAddButton(EditorConst.AddSkinButtonTitle, () => {
m_SkinStyles.InsertArrayElementAtIndex(m_SkinStyles.arraySize);
var addedStyle = m_SkinStyles.GetArrayElementAtIndex(m_SkinStyles.arraySize - 1);
bool expanded = true;
if (m_SkinStyles.arraySize > 1)
{
expanded = m_SkinStyles.GetArrayElementAtIndex(m_SkinStyles.arraySize - 2).isExpanded;
}
m_SkinStyles.GetArrayElementAtIndex(m_SkinStyles.arraySize - 1).isExpanded = expanded;
serializedObject.ApplyModifiedProperties();
})) return;

Expand Down Expand Up @@ -254,25 +259,6 @@ private void Cleanup()
}
}

#region EditorPrefs

private static string GetFoldoutKey(int foldOutIndex)
{
return FOLDOUT_EDITOR_PREFS_KEY + foldOutIndex;
}

private static bool GetFoldOut(int foldOutIndex)
{
return EditorPrefs.GetBool(GetFoldoutKey(foldOutIndex), true);
}

private static void SetFoldOut(int foldOutIndex, bool value)
{
EditorPrefs.SetBool(GetFoldoutKey(foldOutIndex), value);
}

#endregion

#endregion

}
Expand Down

0 comments on commit 17de2e8

Please sign in to comment.