From 62b70d8cb0f264c98bf2463bb7a8238b01c204ff Mon Sep 17 00:00:00 2001 From: ousttrue Date: Wed, 17 Mar 2021 15:01:08 +0900 Subject: [PATCH 1/3] UnityEditor.Experimental.AssetImporters to UnityEditor.AssetImporters #if UNITY_2020_2_OR_NEWER --- .../UniGLTF/ScriptedImporter/EditorMaterial.cs | 7 ++++++- .../ScriptedImporter/GlbScriptedImporter.cs | 7 ++++++- .../GlbScriptedImporterEditorGUI.cs | 7 ++++++- .../ScriptedImporter/GltfScriptedImporter.cs | 7 ++++++- .../GltfScriptedImporterEditorGUI.cs | 7 ++++++- .../ScriptedImporter/ScriptedImporterExtension.cs | 8 ++++++-- .../ScriptedImporter/ScriptedImporterImpl.cs | 7 ++++++- .../ScriptedImporter/ScriptedImporterExtension.cs | 7 ++++++- .../ScriptedImporter/VrmScriptedImporter.cs | 15 +++++++-------- .../VrmScriptedImporterEditorGUI.cs | 11 +++++++---- 10 files changed, 62 insertions(+), 21 deletions(-) diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/EditorMaterial.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/EditorMaterial.cs index 0ad9a47bc..54179dfe9 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/EditorMaterial.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/EditorMaterial.cs @@ -3,8 +3,13 @@ using System.Collections.Generic; using System.IO; using System.Linq; using UnityEditor; -using UnityEditor.Experimental.AssetImporters; using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniGLTF { diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs index ae92a0387..d83504f45 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporter.cs @@ -1,5 +1,10 @@ -using UnityEditor.Experimental.AssetImporters; + using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif namespace UniGLTF diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs index fb1b4634b..f2c001958 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GlbScriptedImporterEditorGUI.cs @@ -1,6 +1,11 @@ using UnityEditor; -using UnityEditor.Experimental.AssetImporters; using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniGLTF { diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs index fe4fc605b..942bb0e96 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporter.cs @@ -1,5 +1,10 @@ -using UnityEditor.Experimental.AssetImporters; + using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif namespace UniGLTF diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs index b1c4723d5..bdf30fad4 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/GltfScriptedImporterEditorGUI.cs @@ -1,6 +1,11 @@ using UnityEditor; -using UnityEditor.Experimental.AssetImporters; using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniGLTF { diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterExtension.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterExtension.cs index 41f91f6df..4d64dbc9f 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterExtension.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterExtension.cs @@ -1,8 +1,12 @@ using System.Collections.Generic; -using System.IO; using System.Linq; -using UnityEditor.Experimental.AssetImporters; using UnityEditor; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniGLTF { diff --git a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs index a2dba9f0c..e3c61e700 100644 --- a/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs +++ b/Assets/UniGLTF/Editor/UniGLTF/ScriptedImporter/ScriptedImporterImpl.cs @@ -1,8 +1,13 @@ using System.Collections.Generic; using System.Linq; using UnityEditor; -using UnityEditor.Experimental.AssetImporters; using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniGLTF { diff --git a/Assets/VRM10/Editor/ScriptedImporter/ScriptedImporterExtension.cs b/Assets/VRM10/Editor/ScriptedImporter/ScriptedImporterExtension.cs index 361a492ba..631a5c2bf 100644 --- a/Assets/VRM10/Editor/ScriptedImporter/ScriptedImporterExtension.cs +++ b/Assets/VRM10/Editor/ScriptedImporter/ScriptedImporterExtension.cs @@ -1,10 +1,15 @@ using System.Collections.Generic; using System.IO; using System.Linq; -using UnityEditor.Experimental.AssetImporters; using UnityEditor; using System; using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniVRM10 { diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs index 928ff55d1..71bfc5ffd 100644 --- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs +++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporter.cs @@ -1,14 +1,13 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Runtime.Serialization.Json; -using System.IO; +using System.Collections.Generic; using System.Linq; using UnityEngine; -using UnityEngine.Assertions; -using UnityEditor.Experimental.AssetImporters; using UnityEditor; -using VrmLib; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniVRM10 { diff --git a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs index d51eef909..a9aacd84d 100644 --- a/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs +++ b/Assets/VRM10/Editor/ScriptedImporter/VrmScriptedImporterEditorGUI.cs @@ -1,9 +1,12 @@ -using System.Collections; -using System.Collections.Generic; -using System.Linq; +using System.Linq; using UnityEditor; -using UnityEditor.Experimental.AssetImporters; using UnityEngine; +#if UNITY_2020_2_OR_NEWER +using UnityEditor.AssetImporters; +#else +using UnityEditor.Experimental.AssetImporters; +#endif + namespace UniVRM10 { From 7eaba1dda7b48b97eb0f7abd411e502f5a794f5e Mon Sep 17 00:00:00 2001 From: ousttrue Date: Wed, 17 Mar 2021 15:08:43 +0900 Subject: [PATCH 2/3] PrefabUtility.LoadPrefabContents --- .../Editor/ExportDialog/ExportDialogState.cs | 19 ++++++++++++++----- 1 file changed, 14 insertions(+), 5 deletions(-) diff --git a/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs b/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs index 42f8a1f13..15afe51d7 100644 --- a/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs +++ b/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using UnityEditor; using UnityEngine; namespace MeshUtility @@ -22,24 +23,32 @@ namespace MeshUtility } #region ExportRoot管理 - GameObject m_root; + (GameObject GameObject, bool IsPrefab) m_root; public event Action ExportRootChanged; void RaiseExportRootChanged() { var tmp = ExportRootChanged; if (tmp == null) return; - tmp(m_root); + tmp(m_root.GameObject); } public GameObject ExportRoot { - get { return m_root; } + get { return m_root.GameObject; } set { - if (m_root == value) + string assetPath = default; + var isPrefab = false; + if (value != null && AssetDatabase.IsMainAsset(value)) + { + assetPath = AssetDatabase.GetAssetPath(value); + isPrefab = true; + value = PrefabUtility.LoadPrefabContents(assetPath); + } + if (m_root.GameObject == value) { return; } - m_root = value; + m_root = (value, isPrefab); m_requireValidation = true; RaiseExportRootChanged(); } From b94fff316f5a2d73b4a55e1f6094d72ceb30647d Mon Sep 17 00:00:00 2001 From: ousttrue Date: Wed, 17 Mar 2021 15:10:57 +0900 Subject: [PATCH 3/3] PrefabUtility.UnloadPrefabContents --- .../MeshUtility/Editor/ExportDialog/ExportDialogState.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs b/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs index 15afe51d7..0ae1dd4d3 100644 --- a/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs +++ b/Assets/UniGLTF/MeshUtility/Editor/ExportDialog/ExportDialogState.cs @@ -48,6 +48,13 @@ namespace MeshUtility { return; } + if (m_root.IsPrefab) + { +#if VRM_DEVELOP + Debug.Log($"PrefabUtility.UnloadPrefabContents({m_root.GameObject})"); +#endif + PrefabUtility.UnloadPrefabContents(m_root.GameObject); + } m_root = (value, isPrefab); m_requireValidation = true; RaiseExportRootChanged();