Merge pull request #1142 from ousttrue/fix1/expression_ui

Fix1/expression UI
This commit is contained in:
PoChang007 2021-08-11 19:22:22 +09:00 committed by GitHub
commit df101a6daf
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 59 additions and 77 deletions

View File

@ -72,11 +72,11 @@ namespace UniVRM10
return changed;
}
public bool Draw()
public bool Draw(string label)
{
m_changed = false;
m_list.DoLayoutList();
if (GUILayout.Button("Clear MaterialColor"))
if (GUILayout.Button($"Clear {label}"))
{
m_changed = true;
m_serializedProperty.arraySize = 0;

View File

@ -80,11 +80,11 @@ namespace UniVRM10
return changed;
}
public bool Draw()
public bool Draw(string label)
{
m_changed = false;
m_list.DoLayoutList();
if (GUILayout.Button("Clear MaterialUV"))
if (GUILayout.Button($"Clear {label}"))
{
m_changed = true;
m_serializedProperty.arraySize = 0;

View File

@ -103,11 +103,11 @@ namespace UniVRM10
}
public bool Draw()
public bool Draw(string label)
{
m_changed = false;
m_ValuesList.DoLayoutList();
if (GUILayout.Button("Clear BlendShape"))
if (GUILayout.Button($"Clear {label}"))
{
m_changed = true;
m_valuesProp.arraySize = 0;

View File

@ -33,25 +33,15 @@ namespace UniVRM10
bool m_changed;
public struct EditorStatus
{
public int Mode;
public bool MorphTargetFoldout;
public bool AdvancedFoldout;
public static EditorStatus Default => new EditorStatus
{
MorphTargetFoldout = true,
};
}
EditorStatus m_status = EditorStatus.Default;
public EditorStatus Status => m_status;
static int s_Mode;
static bool s_MorphTargetFoldout = true;
static bool s_OptionFoldout;
static bool s_ListFoldout;
static string[] MODES = new[]{
"MorphTarget",
"Material Color",
"Material UV"
"Texture Transform"
};
PreviewMeshItem[] m_items;
@ -59,18 +49,17 @@ namespace UniVRM10
public SerializedExpressionEditor(SerializedObject serializedObject,
PreviewSceneManager previewSceneManager) : this(
serializedObject, (VRM10Expression)serializedObject.targetObject, previewSceneManager, EditorStatus.Default)
serializedObject, (VRM10Expression)serializedObject.targetObject, previewSceneManager)
{ }
public SerializedExpressionEditor(VRM10Expression expression,
PreviewSceneManager previewSceneManager, EditorStatus status) : this(
new SerializedObject(expression), expression, previewSceneManager, status)
PreviewSceneManager previewSceneManager) : this(
new SerializedObject(expression), expression, previewSceneManager)
{ }
public SerializedExpressionEditor(SerializedObject serializedObject, VRM10Expression targetObject,
PreviewSceneManager previewSceneManager, EditorStatus status)
PreviewSceneManager previewSceneManager)
{
m_status = status;
this.m_serializedObject = serializedObject;
this.m_targetObject = targetObject;
@ -100,8 +89,8 @@ namespace UniVRM10
m_targetObject, typeof(VRM10Expression), false);
GUI.enabled = true;
m_status.MorphTargetFoldout = CustomUI.Foldout(Status.MorphTargetFoldout, "MorphTarget");
if (Status.MorphTargetFoldout)
s_MorphTargetFoldout = CustomUI.Foldout(s_MorphTargetFoldout, "MorphTarget");
if (s_MorphTargetFoldout)
{
EditorGUI.indentLevel++;
var changed = MorphTargetBindsGUI();
@ -116,8 +105,48 @@ namespace UniVRM10
EditorGUI.indentLevel--;
}
m_status.AdvancedFoldout = CustomUI.Foldout(Status.AdvancedFoldout, "Advanced");
if (Status.AdvancedFoldout)
s_ListFoldout = CustomUI.Foldout(s_ListFoldout, "List");
if (s_ListFoldout)
{
EditorGUI.indentLevel++;
s_Mode = GUILayout.Toolbar(s_Mode, MODES);
switch (s_Mode)
{
case 0:
// MorphTarget
{
if (m_morphTargetBindings.Draw("MorphTarget"))
{
m_changed = true;
}
}
break;
case 1:
// Material
{
if (m_materialColorBindings.Draw("MaterialColor"))
{
m_changed = true;
}
}
break;
case 2:
// TextureTransform
{
if (m_materialUVBindings.Draw("TextureTransform"))
{
m_changed = true;
}
}
break;
}
EditorGUI.indentLevel--;
}
s_OptionFoldout = CustomUI.Foldout(s_OptionFoldout, "Option");
if (s_OptionFoldout)
{
EditorGUI.indentLevel++;
@ -129,40 +158,6 @@ namespace UniVRM10
EditorGUILayout.PropertyField(m_ignoreLookAtProp, true);
EditorGUILayout.PropertyField(m_ignoreMouthProp, true);
EditorGUILayout.Space();
m_status.Mode = GUILayout.Toolbar(Status.Mode, MODES);
switch (Status.Mode)
{
case 0:
// MorphTarget
{
if (m_morphTargetBindings.Draw())
{
m_changed = true;
}
}
break;
case 1:
// Material
{
if (m_materialColorBindings.Draw())
{
m_changed = true;
}
}
break;
case 2:
// MaterialUV
{
if (m_materialUVBindings.Draw())
{
m_changed = true;
}
}
break;
}
EditorGUI.indentLevel--;
}

View File

@ -214,19 +214,6 @@ namespace UniVRM10
}
}
// public static VRM10Expression CreateExpression(string path)
// {
// //Debug.LogFormat("{0}", path);
// var clip = ScriptableObject.CreateInstance<VRM10Expression>();
// clip.name = Path.GetFileNameWithoutExtension(path);
// AssetDatabase.CreateAsset(clip, path);
// AssetDatabase.ImportAsset(path);
// return clip;
// //Clips.Add(clip);
// //EditorUtility.SetDirty(this);
// //AssetDatabase.SaveAssets();
// }
SerializedExpressionEditor m_serializedEditor;
VRM10Expression m_target;