diff --git a/Assets/VRM10/Editor/Components/Expression/ExpressionSelector.cs b/Assets/VRM10/Editor/Components/Expression/ExpressionSelector.cs deleted file mode 100644 index 6c32d7ba3..000000000 --- a/Assets/VRM10/Editor/Components/Expression/ExpressionSelector.cs +++ /dev/null @@ -1,148 +0,0 @@ -using System; -using System.Linq; -using UnityEngine; -using UnityEditor; -using System.IO; - -namespace UniVRM10 -{ - /// - /// ExpressionAvatarEditorの部品 - /// - class ExpressionClipSelector - { - VRM10ObjectExpression m_avatar; - - int m_mode; - static readonly string[] MODES = new string[]{ - "Button", - "List" - }; - - ReorderableExpressionList m_clipList; - - public VRM10Expression GetSelected() - { - var clips = m_avatar.Clips.ToArray(); - if (m_avatar == null || clips == null || clips.Length == 0) - { - return null; - } - if (m_selectedIndex < 0 || m_selectedIndex >= clips.Length) - { - return null; - } - return clips[m_selectedIndex]; - } - - public event Action Selected; - void RaiseSelected(int index) - { - m_clipList.Select(index); - var clip = GetSelected(); - var handle = Selected; - if (handle == null) - { - return; - } - handle(clip); - } - - int m_selectedIndex; - int SelectedIndex - { - get { return m_selectedIndex; } - set - { - // これで更新するべし - if (m_selectedIndex == value) return; - m_selectedIndex = value; - RaiseSelected(value); - } - } - - public ExpressionClipSelector(VRM10ObjectExpression avatar, string dir, SerializedObject serializedObject) - { - avatar.RemoveNullClip(); - - m_avatar = avatar; - - var prop = serializedObject.FindProperty("Clips"); - m_clipList = new ReorderableExpressionList(serializedObject, prop, dir); - - m_clipList.Selected += (selected) => - { - var clips = avatar.Clips.ToArray(); - SelectedIndex = Array.IndexOf(clips, selected); - }; - } - - public void DrawGUI(string dir) - { - var backup = GUI.enabled; - try - { - GUI.enabled = true; - EditorGUILayout.Space(); - EditorGUILayout.LabelField("Select Expression", EditorStyles.boldLabel); - - m_mode = GUILayout.Toolbar(m_mode, MODES); - switch (m_mode) - { - case 0: - SelectGUI(dir); - break; - - case 1: - m_clipList.GUI(); - break; - - default: - throw new NotImplementedException(); - } - } - finally - { - GUI.enabled = backup; - } - } - - void SelectGUI(string dir) - { - if (m_avatar != null && m_avatar.Clips != null) - { - var array = m_avatar.Clips - .Select(x => x != null - ? ExpressionKey.CreateFromClip(x).ToString() - : "null" - ).ToArray(); - SelectedIndex = GUILayout.SelectionGrid(SelectedIndex, array, 4); - } - - // if (GUILayout.Button("Add Expression")) - // { - // var path = EditorUtility.SaveFilePanel( - // "Create Expression", - // dir, - // string.Format("Expression#{0}.asset", m_avatar.Clips.Count), - // "asset"); - // if (!string.IsNullOrEmpty(path)) - // { - // var clip = ExpressionEditorBase.CreateExpression(path.ToUnityRelativePath()); - // //clip.Prefab = AssetDatabase.LoadAssetAtPath(AssetDatabase.GetAssetPath(target)); - - // m_avatar.Clips.Add(clip); - // } - // } - } - - public void DuplicateWarn() - { - var key = ExpressionKey.CreateFromClip(GetSelected()); - if (m_avatar.Clips.Where(x => key.Match(x)).Count() > 1) - { - EditorGUILayout.HelpBox("duplicate clip: " + key, MessageType.Error); - } - } - } -} diff --git a/Assets/VRM10/Editor/Components/Expression/ExpressionSelector.cs.meta b/Assets/VRM10/Editor/Components/Expression/ExpressionSelector.cs.meta deleted file mode 100644 index d6d2bac84..000000000 --- a/Assets/VRM10/Editor/Components/Expression/ExpressionSelector.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: 6d4d5da207577eb48ad767ff59bcf8b4 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: diff --git a/Assets/VRM10/Editor/Components/Expression/ReorderableExpressionList.cs b/Assets/VRM10/Editor/Components/Expression/ReorderableExpressionList.cs deleted file mode 100644 index cd69a46c3..000000000 --- a/Assets/VRM10/Editor/Components/Expression/ReorderableExpressionList.cs +++ /dev/null @@ -1,84 +0,0 @@ -using System; -using System.IO; -using UnityEditor; -using UnityEditorInternal; -using UnityEngine; - -namespace UniVRM10 -{ - class ReorderableExpressionList - { - ReorderableList m_list; - - public event Action Selected; - void RaiseSelected(VRM10Expression selected) - { - var handler = Selected; - if (handler == null) - { - return; - } - handler(selected); - } - - public void Select(int index) - { - m_list.index = index; - } - - public ReorderableExpressionList(SerializedObject serializedObject, SerializedProperty prop, string dir) - { - m_list = new ReorderableList(serializedObject, prop); - - m_list.drawHeaderCallback = (rect) => - EditorGUI.LabelField(rect, "Expressions"); - - m_list.drawElementCallback = (rect, index, isActive, isFocused) => - { - var element = prop.GetArrayElementAtIndex(index); - rect.height -= 4; - rect.y += 2; - EditorGUI.PropertyField(rect, element); - }; - - m_list.onAddCallback += (list) => - { - // Add slot - prop.arraySize++; - // select last item - list.index = prop.arraySize - 1; - // get last item - var element = prop.GetArrayElementAtIndex(list.index); - element.objectReferenceValue = null; - - // var dir = Path.GetDirectoryName(AssetDatabase.GetAssetPath(target)); - var path = EditorUtility.SaveFilePanel( - "Create Expression", - dir, - string.Format("Expression#{0}.asset", list.count), - "asset"); - if (!string.IsNullOrEmpty(path)) - { - var clip = ExpressionEditorBase.CreateExpression(path.ToUnityRelativePath()); - //clip.Prefab = AssetDatabase.LoadAssetAtPath(AssetDatabase.GetAssetPath(target)); - - element.objectReferenceValue = clip; - } - }; - - m_list.onSelectCallback += (list) => - { - var a = list.serializedProperty; - var selected = a.GetArrayElementAtIndex(list.index); - RaiseSelected((VRM10Expression)selected.objectReferenceValue); - }; - - //m_clipList.onCanRemoveCallback += list => true; - } - - public void GUI() - { - m_list.DoLayoutList(); - } - } -} diff --git a/Assets/VRM10/Editor/Components/Expression/ReorderableExpressionList.cs.meta b/Assets/VRM10/Editor/Components/Expression/ReorderableExpressionList.cs.meta deleted file mode 100644 index 55b093fb4..000000000 --- a/Assets/VRM10/Editor/Components/Expression/ReorderableExpressionList.cs.meta +++ /dev/null @@ -1,11 +0,0 @@ -fileFormatVersion: 2 -guid: a5a5707cea4226d40af879c4c9778002 -MonoImporter: - externalObjects: {} - serializedVersion: 2 - defaultReferences: [] - executionOrder: 0 - icon: {instanceID: 0} - userData: - assetBundleName: - assetBundleVariant: