private void DrawRemapGUI <T>(string title, VrmScriptedImporter importer) where T : UnityEngine.Object { EditorGUILayout.Foldout(_isOpen, title); EditorGUI.indentLevel++; var objects = importer.GetExternalObjectMap().Where(x => x.Key.type == typeof(T)); foreach (var obj in objects) { EditorGUILayout.BeginHorizontal(); EditorGUILayout.PrefixLabel(obj.Key.name); var asset = EditorGUILayout.ObjectField(obj.Value, obj.Key.type, true) as T; if (asset != obj.Value) { importer.SetExternalUnityObject(obj.Key, asset); } EditorGUILayout.EndHorizontal(); } EditorGUI.indentLevel--; }
public override void OnEnable() { base.OnEnable(); m_importer = target as VrmScriptedImporter; if (!Vrm10Parser.TryParseOrMigrate(m_importer.assetPath, m_importer.MigrateToVrm1, out m_result)) { // error return; } m_model = ModelReader.Read(m_result.Data); var tmp = m_importer.GetExternalObjectMap(); var generator = new Vrm10MaterialDescriptorGenerator(); var materialKeys = m_result.Data.GLTF.materials.Select((x, i) => generator.Get(m_result.Data, i).SubAssetKey); var textureKeys = new GltfTextureDescriptorGenerator(m_result.Data).Get().GetEnumerable().Select(x => x.SubAssetKey); m_materialEditor = new RemapEditorMaterial(materialKeys.Concat(textureKeys), GetEditorMap, SetEditorMap); m_vrmEditor = new RemapEditorVrm(new[] { VRM10Object.SubAssetKey }.Concat(EnumerateExpressinKeys(m_result.Vrm.Expressions)), GetEditorMap, SetEditorMap); }