From 7eaba1dda7b48b97eb0f7abd411e502f5a794f5e Mon Sep 17 00:00:00 2001 From: ousttrue Date: Wed, 17 Mar 2021 15:08:43 +0900 Subject: [PATCH] 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(); }