From de125cd8b89e64ed857cccd43a6b229cdec6639e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EC=A0=95=EC=98=81=EB=AF=BC?= <117150306+jym04@users.noreply.github.com> Date: Fri, 27 Jun 2025 11:50:49 +0900 Subject: [PATCH] =?UTF-8?q?=EA=B8=B0=EB=B3=B8=20=EC=97=90=EC=85=8B?= =?UTF-8?q?=EC=9D=B4=20Asset=20=EC=A0=95=EB=B3=B4=EC=B0=BD=EC=97=90=20?= =?UTF-8?q?=ED=91=9C=EC=8B=9C=EB=90=98=EC=A7=80=20=EC=95=8A=EB=8A=94=20?= =?UTF-8?q?=EC=98=A4=EB=A5=98=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Prefabs/AAA/Panel_AssetSetting.prefab | 3 +- .../Scripts/Studio/Managers/AssetManager.cs | 43 +++++++++++++------ .../Scripts/Studio/Managers/FBXFileManager.cs | 5 +-- .../Studio/UI/Panel/Panel_LocalAssets.cs | 2 +- 4 files changed, 34 insertions(+), 19 deletions(-) diff --git a/Assets/Prefabs/AAA/Panel_AssetSetting.prefab b/Assets/Prefabs/AAA/Panel_AssetSetting.prefab index 2f64fc0b..d5347dda 100644 --- a/Assets/Prefabs/AAA/Panel_AssetSetting.prefab +++ b/Assets/Prefabs/AAA/Panel_AssetSetting.prefab @@ -1805,6 +1805,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: f9c6f8c6f0c462a4ab09d615c0d0db6c, type: 3} m_Name: m_EditorClassIdentifier: + header: {fileID: 0} Area: {fileID: 0} state: 0 resizeDirection: 0 @@ -2512,7 +2513,7 @@ GameObject: m_Icon: {fileID: 0} m_NavMeshLayer: 0 m_StaticEditorFlags: 0 - m_IsActive: 1 + m_IsActive: 0 --- !u!224 &1098354475033513177 RectTransform: m_ObjectHideFlags: 0 diff --git a/Assets/Scripts/Studio/Managers/AssetManager.cs b/Assets/Scripts/Studio/Managers/AssetManager.cs index 982d36d5..3b1577a1 100644 --- a/Assets/Scripts/Studio/Managers/AssetManager.cs +++ b/Assets/Scripts/Studio/Managers/AssetManager.cs @@ -27,6 +27,8 @@ namespace Studio.Manage public class AssetManager : Manager { public List localAssetPaths = new List(); + private List loadAsset = new List(); + private List loadHierarchy = new List(); private List folderPathList = new List(); private Dictionary itemDict = new Dictionary(); @@ -67,9 +69,12 @@ namespace Studio.Manage { localAssetPaths.Clear(); folderPathList.Clear(); + loadAsset.Clear(); + loadHierarchy.Clear(); } public void LoadAssetSettingFBXDirectorys(int index, string folderPath) { + Debug.Log("에셋 폴더 로드"); if (!assetSettingPaths.ContainsKey(index)) { assetSettingPaths.Add(index, folderPath); @@ -116,6 +121,7 @@ namespace Studio.Manage public void LoadLocalFBXDirectorys() { + Debug.Log("로컬 fbx 폴더 로드"); var fbxFileManager = ManagerHub.instance.Get(); fbxFileManager.LoadLocalFBXDirectorys(folderPathList); var assetManagerData = new AssetManagerData(); @@ -126,11 +132,15 @@ namespace Studio.Manage onSetAssetSetting?.Invoke(data); } + private void OnSetAssetHierarchyData() + { + + } private void OnLoadCustomAsset() { var projectManager = ManagerHub.instance.Get(); - var fbxFileManager = ManagerHub.instance.Get(); var connector = ManagerHub.instance.Get(); + var fbxFileManager = ManagerHub.instance.Get(); onSetAssetHierarchy?.Invoke(fbxFileManager.fileDatas); if (projectManager.curProjectData == null || projectManager.curProjectData.assetDatas.Count <= 0) @@ -148,31 +158,38 @@ namespace Studio.Manage Debug.Log(connector.connectedAssets.Count); foreach (AssetData asset in assets) { - RestoreHierarchy(asset); } } private void LoadAsset(AssetData asset) { - var connector = ManagerHub.instance.Get(); - connector.OnLoadAsset(asset); + if (!loadAsset.Contains(asset)) + { + var connector = ManagerHub.instance.Get(); + connector.OnLoadAsset(asset); - itemDict.TryAdd(asset.id, connector.connectedAssets.Last().hierarchyItem); + itemDict.TryAdd(asset.id, connector.connectedAssets.Last().hierarchyItem); + loadAsset.Add(asset); + } } private void RestoreHierarchy(AssetData asset) { - var connector = ManagerHub.instance.Get(); - - foreach (int id in asset.children) + if (!loadHierarchy.Contains(itemDict[asset.id])) { - HierarchyItem parent = itemDict[asset.id]; - HierarchyItem child = itemDict[id]; + var connector = ManagerHub.instance.Get(); - if (parent == null || child == null) - continue; + foreach (int id in asset.children) + { + HierarchyItem parent = itemDict[asset.id]; + HierarchyItem child = itemDict[id]; - connector.OnRestoreHierarchy(parent, child); + if (parent == null || child == null) + continue; + + connector.OnRestoreHierarchy(parent, child); + loadHierarchy.Add(parent); + } } } public void SetAssetInfo(string name) diff --git a/Assets/Scripts/Studio/Managers/FBXFileManager.cs b/Assets/Scripts/Studio/Managers/FBXFileManager.cs index 29ff3a8d..9802b585 100644 --- a/Assets/Scripts/Studio/Managers/FBXFileManager.cs +++ b/Assets/Scripts/Studio/Managers/FBXFileManager.cs @@ -90,10 +90,7 @@ namespace Studio.AssetTool OnLoadComplete(assetData); } - if (filePaths.Count > 0) - { - OnDirectoryLoadComplete(); - } + OnDirectoryLoadComplete(); } public void LoadLocalFBXDirectorys(List folderPaths) { diff --git a/Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs b/Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs index c01a6990..fa261084 100644 --- a/Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs +++ b/Assets/Scripts/Studio/UI/Panel/Panel_LocalAssets.cs @@ -99,8 +99,8 @@ namespace Studio for (int i = 0; i < assetManagerData.localAssetsPaths.Count; i++) { var item = Instantiate(prf_folderPathItem, Content_LocalAssets); - item.onEndEditInputFieldURL += LoadAsstsPath; item.SetData(assetManagerData.localAssetsPaths[i]); + item.onEndEditInputFieldURL += LoadAsstsPath; folderPathItems.Add(item); selectedURLs.Add(i, item.GetURL());