diff --git a/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs b/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs index b6cbf852..8e7917e4 100644 --- a/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs +++ b/Assets/Scripts/Studio/Command/ObjectCommand/CopyObjectCommand.cs @@ -57,6 +57,7 @@ namespace Studio.Command copyAsset.renderObject.onTransformChanged = copySource.assetData.OnTransformDataChanged; copyAsset.renderObject.instantiateObject = copySource.assetData.InstantiateLoadedObject; copyAsset.renderObject.CreateRenderObject(); + copyAsset.hierarchyItem.linkedObject = copyObject; copyAsset.renderObject.transform.position = copySource.renderObject.transform.position; copyAsset.renderObject.transform.rotation = copySource.renderObject.transform.rotation; copyAsset.renderObject.transform.localScale = copySource.renderObject.transform.localScale; @@ -83,6 +84,7 @@ namespace Studio.Command childAsset.renderObject.onTransformChanged = childAsset.assetData.OnTransformDataChanged; childAsset.renderObject.instantiateObject = childSource.assetData.InstantiateLoadedObject; childAsset.renderObject.CreateRenderObject(); + childAsset.hierarchyItem.linkedObject = copyChildObject; childAsset.renderObject.transform.position = childSource.renderObject.transform.position; childAsset.renderObject.transform.rotation = childSource.renderObject.transform.rotation; childAsset.renderObject.transform.localScale = childSource.renderObject.transform.localScale; diff --git a/Assets/Scripts/Studio/Managers/AssetManager.cs b/Assets/Scripts/Studio/Managers/AssetManager.cs index 2e288621..982d36d5 100644 --- a/Assets/Scripts/Studio/Managers/AssetManager.cs +++ b/Assets/Scripts/Studio/Managers/AssetManager.cs @@ -130,6 +130,7 @@ namespace Studio.Manage { var projectManager = ManagerHub.instance.Get(); var fbxFileManager = ManagerHub.instance.Get(); + var connector = ManagerHub.instance.Get(); onSetAssetHierarchy?.Invoke(fbxFileManager.fileDatas); if (projectManager.curProjectData == null || projectManager.curProjectData.assetDatas.Count <= 0) @@ -137,15 +138,17 @@ namespace Studio.Manage List assets = projectManager.curProjectData.assetDatas; - CommandInvoker.instance.Invoke(new RemoveAllObjectCommand()); + //CommandInvoker.instance.Invoke(new RemoveAllObjectCommand()); + Debug.Log(assets.Count); foreach (AssetData asset in assets) { LoadAsset(asset); } - + Debug.Log(connector.connectedAssets.Count); foreach (AssetData asset in assets) { + RestoreHierarchy(asset); } } @@ -153,12 +156,13 @@ namespace Studio.Manage { var connector = ManagerHub.instance.Get(); connector.OnLoadAsset(asset); + + itemDict.TryAdd(asset.id, connector.connectedAssets.Last().hierarchyItem); } private void RestoreHierarchy(AssetData asset) { var connector = ManagerHub.instance.Get(); - itemDict.TryAdd(asset.id, connector.connectedAssets.Last().hierarchyItem); foreach (int id in asset.children) { diff --git a/Assets/Scripts/Studio/Managers/FBXFileManager.cs b/Assets/Scripts/Studio/Managers/FBXFileManager.cs index 001a4e85..29ff3a8d 100644 --- a/Assets/Scripts/Studio/Managers/FBXFileManager.cs +++ b/Assets/Scripts/Studio/Managers/FBXFileManager.cs @@ -89,7 +89,11 @@ namespace Studio.AssetTool assetData.thumbnail = thumbnail; OnLoadComplete(assetData); } - OnDirectoryLoadComplete(); + + if (filePaths.Count > 0) + { + OnDirectoryLoadComplete(); + } } public void LoadLocalFBXDirectorys(List folderPaths) { diff --git a/Assets/Scripts/Studio/Managers/ProjectManager.cs b/Assets/Scripts/Studio/Managers/ProjectManager.cs index 050c0d73..8fcc1ea2 100644 --- a/Assets/Scripts/Studio/Managers/ProjectManager.cs +++ b/Assets/Scripts/Studio/Managers/ProjectManager.cs @@ -40,7 +40,6 @@ namespace Studio.Manage { var connector = ManagerHub.instance.Get(); var fbxFileManager = ManagerHub.instance.Get(); - var assetManager = ManagerHub.instance.Get(); var sceneSettingService = ManagerHub.instance.Get(); var sceneStartSetting = new SceneStartSetting(); @@ -54,8 +53,6 @@ namespace Studio.Manage CommandInvoker.instance.Invoke(new RemoveAllObjectCommand()); fbxFileManager.ClearFilePaths(); - assetManager.ClearFolderPathList(); - assetManager.InitRessourceAsset(); } public void TopMenuNewProjectSettingData() { @@ -106,6 +103,10 @@ namespace Studio.Manage { ResetProjectSettingData(); + var assetManager = ManagerHub.instance.Get(); + assetManager.ClearFolderPathList(); + assetManager.InitRessourceAsset(); + curProjectName = proejctName; curProjectPath = projectPath; curProjectTemplate = string.Empty; diff --git a/Assets/Scripts/Studio/UI/TreeView/HierarchyScrollItemUI.cs b/Assets/Scripts/Studio/UI/TreeView/HierarchyScrollItemUI.cs index c7596585..a51b26d7 100644 --- a/Assets/Scripts/Studio/UI/TreeView/HierarchyScrollItemUI.cs +++ b/Assets/Scripts/Studio/UI/TreeView/HierarchyScrollItemUI.cs @@ -90,7 +90,7 @@ namespace Studio.HierarchyTree private void SetName() { nameText.text = currentItem.name; - CustomAssetRenderObject connectObj = currentItem.linkedObject?.GetComponent(); + CustomAssetRenderObject connectObj = currentItem.linkedObject.GetComponent(); if (connectObj != null && !string.IsNullOrEmpty(connectObj.code)) { nameText.text += $" ({connectObj.code})"; diff --git a/ProjectSettings/LocalizationSettings.asset b/ProjectSettings/LocalizationSettings.asset index 3bdef6a5..681af65e 100644 --- a/ProjectSettings/LocalizationSettings.asset +++ b/ProjectSettings/LocalizationSettings.asset @@ -14,7 +14,7 @@ MonoBehaviour: m_EditorClassIdentifier: m_StringTable: m_TableReference: - m_TableCollectionName: GUID:ab1e4fa9b84503341a204ed3ec095aa8 + m_TableCollectionName: GUID:b7e3230909563f049a2b6af27abfd127 m_AssetTable: m_TableReference: m_TableCollectionName: