5. LoadLocalTextureDataCommand 삭제
6. LoadLocalModelDataCommand 삭제
This commit is contained in:
11
Assets/SceneDataContainer.cs
Normal file
11
Assets/SceneDataContainer.cs
Normal file
@@ -0,0 +1,11 @@
|
|||||||
|
using Studio.AssetTool;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using UnityEngine;
|
||||||
|
|
||||||
|
namespace XED
|
||||||
|
{
|
||||||
|
public class SceneDataContainer : MonoBehaviour
|
||||||
|
{
|
||||||
|
public List<CustomAssetRenderObject> sceneObjects = new();
|
||||||
|
}
|
||||||
|
}
|
||||||
2
Assets/SceneDataContainer.cs.meta
Normal file
2
Assets/SceneDataContainer.cs.meta
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 89a58e6aed073fe4188a7bb3580d5e08
|
||||||
@@ -119,6 +119,50 @@ NavMeshSettings:
|
|||||||
debug:
|
debug:
|
||||||
m_Flags: 0
|
m_Flags: 0
|
||||||
m_NavMeshData: {fileID: 0}
|
m_NavMeshData: {fileID: 0}
|
||||||
|
--- !u!1 &1155209
|
||||||
|
GameObject:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
serializedVersion: 6
|
||||||
|
m_Component:
|
||||||
|
- component: {fileID: 1155210}
|
||||||
|
- component: {fileID: 1155211}
|
||||||
|
m_Layer: 0
|
||||||
|
m_Name: SceneDataContainer
|
||||||
|
m_TagString: Untagged
|
||||||
|
m_Icon: {fileID: 0}
|
||||||
|
m_NavMeshLayer: 0
|
||||||
|
m_StaticEditorFlags: 0
|
||||||
|
m_IsActive: 1
|
||||||
|
--- !u!4 &1155210
|
||||||
|
Transform:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1155209}
|
||||||
|
serializedVersion: 2
|
||||||
|
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
|
||||||
|
m_LocalPosition: {x: 0, y: 0, z: 0}
|
||||||
|
m_LocalScale: {x: 1, y: 1, z: 1}
|
||||||
|
m_ConstrainProportionsScale: 0
|
||||||
|
m_Children: []
|
||||||
|
m_Father: {fileID: 1093055756}
|
||||||
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
|
--- !u!114 &1155211
|
||||||
|
MonoBehaviour:
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_GameObject: {fileID: 1155209}
|
||||||
|
m_Enabled: 1
|
||||||
|
m_EditorHideFlags: 0
|
||||||
|
m_Script: {fileID: 11500000, guid: 89a58e6aed073fe4188a7bb3580d5e08, type: 3}
|
||||||
|
m_Name:
|
||||||
|
m_EditorClassIdentifier:
|
||||||
--- !u!224 &110380560 stripped
|
--- !u!224 &110380560 stripped
|
||||||
RectTransform:
|
RectTransform:
|
||||||
m_CorrespondingSourceObject: {fileID: 1112357447546033534, guid: 86fac645f610e6c43a57c53dec3f6e48, type: 3}
|
m_CorrespondingSourceObject: {fileID: 1112357447546033534, guid: 86fac645f610e6c43a57c53dec3f6e48, type: 3}
|
||||||
@@ -2971,6 +3015,7 @@ Transform:
|
|||||||
- {fileID: 391151068}
|
- {fileID: 391151068}
|
||||||
- {fileID: 294055731}
|
- {fileID: 294055731}
|
||||||
- {fileID: 349372257}
|
- {fileID: 349372257}
|
||||||
|
- {fileID: 1155210}
|
||||||
m_Father: {fileID: 0}
|
m_Father: {fileID: 0}
|
||||||
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
|
||||||
--- !u!114 &1093055757
|
--- !u!114 &1093055757
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using System;
|
|||||||
using Studio.Core;
|
using Studio.Core;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using Studio.AssetLibraryTree;
|
using Studio.AssetLibraryTree;
|
||||||
|
using XED;
|
||||||
|
|
||||||
namespace Studio.AssetTool
|
namespace Studio.AssetTool
|
||||||
{
|
{
|
||||||
@@ -37,7 +38,7 @@ namespace Studio.AssetTool
|
|||||||
|
|
||||||
public CustomAssetDataHandler assetDataHandler;
|
public CustomAssetDataHandler assetDataHandler;
|
||||||
public CustomAssetEventHandler assetEventHandler;
|
public CustomAssetEventHandler assetEventHandler;
|
||||||
|
public SceneDataContainer sceneDataContainer;
|
||||||
public CustomAssetConnector()
|
public CustomAssetConnector()
|
||||||
{
|
{
|
||||||
assetDataHandler = new CustomAssetDataHandler();
|
assetDataHandler = new CustomAssetDataHandler();
|
||||||
@@ -46,26 +47,25 @@ namespace Studio.AssetTool
|
|||||||
public override void Init()
|
public override void Init()
|
||||||
{
|
{
|
||||||
//interferedObjectManager = ManagerHub.instance.Get<InterferedObjectManager>();
|
//interferedObjectManager = ManagerHub.instance.Get<InterferedObjectManager>();
|
||||||
|
renderObjectPrefab = Resources.Load<GameObject>("Prefabs/PRF_RenderObject");
|
||||||
|
|
||||||
|
sceneDataContainer= GameObject.FindAnyObjectByType<SceneDataContainer>();
|
||||||
assetScrollRect = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_assetlibrary.scrollRect;
|
assetScrollRect = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_assetlibrary.scrollRect;
|
||||||
|
assetScrollView = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_assetlibrary.scrollView;
|
||||||
|
componentScrollView = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_hierarchy.scrollView;
|
||||||
|
panel_ObjectDistance = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_objectdistance;
|
||||||
|
InterworkingDataScrollView = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_interworkingdatalist.scrollView;
|
||||||
|
|
||||||
assetScrollRect.onDragBegin.AddListener(OnAssetSelected);
|
assetScrollRect.onDragBegin.AddListener(OnAssetSelected);
|
||||||
assetScrollRect.onDragAndDrop.AddListener(OnAssetDropped);
|
assetScrollRect.onDragAndDrop.AddListener(OnAssetDropped);
|
||||||
|
|
||||||
InterworkingDataScrollView = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_interworkingdatalist.scrollView;
|
|
||||||
InterworkingDataScrollView.onSelect.AddListener(assetEventHandler.OnSelectDataFromHierarchy);
|
|
||||||
|
|
||||||
assetScrollView = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_assetlibrary.scrollView;
|
|
||||||
assetScrollView.onSelect.AddListener(assetEventHandler.OnSelectAssetFromHierarchy);
|
assetScrollView.onSelect.AddListener(assetEventHandler.OnSelectAssetFromHierarchy);
|
||||||
|
|
||||||
componentScrollView = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_hierarchy.scrollView;
|
|
||||||
componentScrollView.onSelect.AddListener(assetEventHandler.OnSelectObjectFromHierarchy);
|
|
||||||
componentScrollView.onParentChanged.AddListener(OnParentChanged);
|
componentScrollView.onParentChanged.AddListener(OnParentChanged);
|
||||||
|
componentScrollView.onSelect.AddListener(assetEventHandler.OnSelectObjectFromHierarchy);
|
||||||
|
|
||||||
panel_ObjectDistance = EventConnector.instance.GetCanvas<Canvas_Popup>().panel_objectdistance;
|
InterworkingDataScrollView.onSelect.AddListener(assetEventHandler.OnSelectDataFromHierarchy);
|
||||||
|
|
||||||
renderObjectPrefab = Resources.Load<GameObject>("Prefabs/PRF_RenderObject");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
IEnumerator ChangeSelectedAssetTransform()
|
IEnumerator ChangeSelectedAssetTransform()
|
||||||
{
|
{
|
||||||
while (selectedAssetData != null)
|
while (selectedAssetData != null)
|
||||||
@@ -112,7 +112,16 @@ namespace Studio.AssetTool
|
|||||||
bool isPointerOutScrollRect = !assetScrollRect.IsPointerOverScrollRect();
|
bool isPointerOutScrollRect = !assetScrollRect.IsPointerOverScrollRect();
|
||||||
if (item != null && isPointerOutScrollRect)
|
if (item != null && isPointerOutScrollRect)
|
||||||
{
|
{
|
||||||
CreateConnectedAsset();
|
ConnectedAsset connectedAsset = new ConnectedAsset
|
||||||
|
{
|
||||||
|
assetData = selectedAssetData,
|
||||||
|
hierarchyItem = componentScrollView.AddItem(selectedAssetData.assetName, selectedItem, HierarchyItemType.obj),
|
||||||
|
renderObject = selectRenderObject
|
||||||
|
};
|
||||||
|
connectedAsset.renderObject.onTransformChanged = connectedAsset.assetData.OnTransformDataChanged;
|
||||||
|
sceneDataContainer.sceneObjects.Add(connectedAsset.renderObject);
|
||||||
|
var command = new CreateConnectedAssetCommand(connectedAsset);
|
||||||
|
CommandInvoker.instance.Invoke(command);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@@ -125,18 +134,6 @@ namespace Studio.AssetTool
|
|||||||
onAssetDropped?.Invoke();
|
onAssetDropped?.Invoke();
|
||||||
}
|
}
|
||||||
|
|
||||||
void CreateConnectedAsset()
|
|
||||||
{
|
|
||||||
ConnectedAsset connectedAsset = new ConnectedAsset
|
|
||||||
{
|
|
||||||
assetData = selectedAssetData,
|
|
||||||
hierarchyItem = componentScrollView.AddItem(selectedAssetData.assetName, selectedItem, HierarchyItemType.obj),
|
|
||||||
renderObject = selectRenderObject
|
|
||||||
};
|
|
||||||
connectedAsset.renderObject.onTransformChanged = connectedAsset.assetData.OnTransformDataChanged;
|
|
||||||
var command = new CreateConnectedAssetCommand(connectedAsset, this);
|
|
||||||
CommandInvoker.instance.Invoke(command);
|
|
||||||
}
|
|
||||||
public void OnParentChanged(HierarchyItem parentItem, HierarchyItem childItem)
|
public void OnParentChanged(HierarchyItem parentItem, HierarchyItem childItem)
|
||||||
{
|
{
|
||||||
ConnectedAsset parentAsset = connectedAssets.Find((x) => x.hierarchyItem == parentItem);
|
ConnectedAsset parentAsset = connectedAssets.Find((x) => x.hierarchyItem == parentItem);
|
||||||
|
|||||||
@@ -8,15 +8,6 @@ namespace Studio.AssetTool
|
|||||||
{
|
{
|
||||||
public class CustomAssetDataHandler
|
public class CustomAssetDataHandler
|
||||||
{
|
{
|
||||||
public void OnLoadFbxFile(string objectName, string folderName, CustomAssetData assetData)
|
|
||||||
{
|
|
||||||
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
|
||||||
AssetLibraryItem parent = connector.assetScrollView.FindItem(folderName, AssetLibraryItemType.folder) ?? connector.assetScrollView.AddItem(folderName, null, AssetLibraryItemType.folder);
|
|
||||||
AssetLibraryItem item = connector.assetScrollView.AddItem(objectName, assetData.gameObject, AssetLibraryItemType.file, parent);
|
|
||||||
assetData.onLoadProgress.RemoveAllListeners();
|
|
||||||
assetData.onLoadProgress.AddListener((x) => item.onLoadProgress?.Invoke(x));
|
|
||||||
}
|
|
||||||
|
|
||||||
public void OnRemoveFbxFile(string objectName)
|
public void OnRemoveFbxFile(string objectName)
|
||||||
{
|
{
|
||||||
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ using Studio.AssetTool;
|
|||||||
using Ookii.Dialogs;
|
using Ookii.Dialogs;
|
||||||
using Studio.Command;
|
using Studio.Command;
|
||||||
using Studio.Manage;
|
using Studio.Manage;
|
||||||
|
using Studio.AssetLibraryTree;
|
||||||
|
|
||||||
namespace Studio.AssetTool
|
namespace Studio.AssetTool
|
||||||
{
|
{
|
||||||
@@ -25,7 +26,6 @@ namespace Studio.AssetTool
|
|||||||
public UnityEvent<string> onRemoveFbxFile;
|
public UnityEvent<string> onRemoveFbxFile;
|
||||||
public SaveData saveData;
|
public SaveData saveData;
|
||||||
|
|
||||||
private Queue<string> loadFilePath = new Queue<string>();
|
|
||||||
public SharedMaterial sharedMaterial;
|
public SharedMaterial sharedMaterial;
|
||||||
private MessagePackFileManager<SaveData> messagePacker;
|
private MessagePackFileManager<SaveData> messagePacker;
|
||||||
private bool isSaveTaskComplete = true;
|
private bool isSaveTaskComplete = true;
|
||||||
@@ -147,10 +147,68 @@ namespace Studio.AssetTool
|
|||||||
}
|
}
|
||||||
|
|
||||||
saveData = task.Result;
|
saveData = task.Result;
|
||||||
CommandInvoker.instance.Invoke(new LoadLocalTextureDataCommand());
|
CoroutineRunner.instance.StartCoroutine(LoadDefaultModelDatas());
|
||||||
CommandInvoker.instance.Invoke(new LoadLocalModelDataCommand());
|
|
||||||
|
|
||||||
isLoadTaskComplete = true;
|
isLoadTaskComplete = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
IEnumerator LoadDefaultModelDatas()
|
||||||
|
{
|
||||||
|
foreach (var tex in saveData.textureDatas)
|
||||||
|
{
|
||||||
|
sharedMaterial.AddTextureData(tex);
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
for (int i = 0; i < saveData.modelDatas.Length; i++)
|
||||||
|
{
|
||||||
|
var modelData = saveData.modelDatas[i];
|
||||||
|
string assetName = modelData.attributes.FirstOrDefault(x => x[0].Equals("assetName"))?[1];
|
||||||
|
|
||||||
|
if (dataRepo.TryGetDataFromName(assetName, out var p))
|
||||||
|
continue;
|
||||||
|
LoadSaveData(saveData, i);
|
||||||
|
yield return null;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
void LoadSaveData(SaveData saveData, int index)
|
||||||
|
{
|
||||||
|
var modelData = saveData.modelDatas[index];
|
||||||
|
string assetName = modelData.attributes.FirstOrDefault(x => x[0].Equals("assetName"))?[1];
|
||||||
|
string folderName = modelData.attributes.FirstOrDefault(x => x[0].Equals("folderName"))?[1];
|
||||||
|
string createDate = modelData.attributes.FirstOrDefault(x => x[0].Equals("createDate"))?[1];
|
||||||
|
string lastRevisionDate = modelData.attributes.FirstOrDefault(x => x[0].Equals("lastRevisionDate"))?[1];
|
||||||
|
string uploadDate = modelData.attributes.FirstOrDefault(x => x[0].Equals("uploadDate"))?[1];
|
||||||
|
string creator = modelData.attributes.FirstOrDefault(x => x[0].Equals("creator"))?[1];
|
||||||
|
string manager = modelData.attributes.FirstOrDefault(x => x[0].Equals("manager"))?[1];
|
||||||
|
|
||||||
|
Texture2D thumbnail = new Texture2D(1, 1);
|
||||||
|
thumbnail.LoadImage(saveData.thumbnailDatas[index].data);
|
||||||
|
GameObject newObject = new GameObject(assetName);
|
||||||
|
newObject.transform.parent = fbxAnchor;
|
||||||
|
CustomAssetData assetData = newObject.AddComponent<CustomAssetData>();
|
||||||
|
assetData.assetName = assetName;
|
||||||
|
assetData.folderName = folderName;
|
||||||
|
assetData.createDate = createDate;
|
||||||
|
assetData.LastRevisionDate = lastRevisionDate;
|
||||||
|
assetData.UploadDate = uploadDate;
|
||||||
|
assetData.Creator = creator;
|
||||||
|
assetData.Manager = manager;
|
||||||
|
assetData.loadedObject = modelData.LoadModelData(sharedMaterial);
|
||||||
|
assetData.thumbnail = thumbnail;
|
||||||
|
assetData.OnLoadComplete();
|
||||||
|
|
||||||
|
dataRepo.Add(assetData);
|
||||||
|
//listAssets.Add(assetData);
|
||||||
|
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||||
|
AssetLibraryItem parent = connector.assetScrollView.FindItem(folderName, AssetLibraryItemType.folder) ??
|
||||||
|
connector.assetScrollView.AddItem(folderName, null, AssetLibraryItemType.folder);
|
||||||
|
|
||||||
|
AssetLibraryItem item = connector.assetScrollView.AddItem(assetData.assetName, assetData.gameObject, AssetLibraryItemType.file, parent);
|
||||||
|
|
||||||
|
assetData.onLoadProgress.RemoveAllListeners();
|
||||||
|
assetData.onLoadProgress.AddListener((x) => item.onLoadProgress?.Invoke(x));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -1,16 +1,15 @@
|
|||||||
using Studio.AssetTool;
|
using Studio.AssetTool;
|
||||||
|
using Studio.Manage;
|
||||||
|
|
||||||
namespace Studio.Command
|
namespace Studio.Command
|
||||||
{
|
{
|
||||||
public class CreateConnectedAssetCommand : IReversibleCommand
|
public class CreateConnectedAssetCommand : IReversibleCommand
|
||||||
{
|
{
|
||||||
private ConnectedAsset connectedAsset;
|
private ConnectedAsset connectedAsset;
|
||||||
private CustomAssetConnector connector;
|
|
||||||
|
|
||||||
public CreateConnectedAssetCommand(ConnectedAsset connectedAsset, CustomAssetConnector connector)
|
public CreateConnectedAssetCommand(ConnectedAsset connectedAsset)
|
||||||
{
|
{
|
||||||
this.connectedAsset = connectedAsset;
|
this.connectedAsset = connectedAsset;
|
||||||
this.connector = connector;
|
|
||||||
}
|
}
|
||||||
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
||||||
|
|
||||||
@@ -21,6 +20,7 @@ namespace Studio.Command
|
|||||||
|
|
||||||
public void Execute()
|
public void Execute()
|
||||||
{
|
{
|
||||||
|
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||||
if (!connectedAsset.renderObject.gameObject.activeSelf)
|
if (!connectedAsset.renderObject.gameObject.activeSelf)
|
||||||
{
|
{
|
||||||
connectedAsset.assetData.AddTransformToRender(connectedAsset.renderObject.transform);
|
connectedAsset.assetData.AddTransformToRender(connectedAsset.renderObject.transform);
|
||||||
@@ -33,6 +33,7 @@ namespace Studio.Command
|
|||||||
|
|
||||||
public void Undo()
|
public void Undo()
|
||||||
{
|
{
|
||||||
|
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||||
connector.connectedAssets.Remove(connectedAsset);
|
connector.connectedAssets.Remove(connectedAsset);
|
||||||
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
|
connectedAsset.assetData.RemoveTransform(connectedAsset.renderObject.transform);
|
||||||
connectedAsset.renderObject.gameObject.SetActive(false);
|
connectedAsset.renderObject.gameObject.SetActive(false);
|
||||||
|
|||||||
@@ -1,89 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using System.Linq;
|
|
||||||
using UnityEngine;
|
|
||||||
using Studio.AssetTool;
|
|
||||||
using Studio.Manage;
|
|
||||||
using Studio.Repositories;
|
|
||||||
using Studio.Util;
|
|
||||||
|
|
||||||
namespace Studio.Command
|
|
||||||
{
|
|
||||||
public class LoadLocalModelDataCommand : IIrreversibleCommand
|
|
||||||
{
|
|
||||||
private FBXFileManager fbxFileManager;
|
|
||||||
private float loadTime = 0f;
|
|
||||||
|
|
||||||
public LoadLocalModelDataCommand()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
||||||
|
|
||||||
public bool CanExecute()
|
|
||||||
{
|
|
||||||
throw new System.NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Execute()
|
|
||||||
{
|
|
||||||
fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
|
|
||||||
|
|
||||||
for (int i = 0; i < fbxFileManager.saveData.modelDatas.Length; i++)
|
|
||||||
{
|
|
||||||
CoroutineRunner.instance.StartCoroutine(LoadModelData(i));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerator LoadModelData(int index)
|
|
||||||
{
|
|
||||||
if (!LoadSaveData(fbxFileManager.saveData, index))
|
|
||||||
yield break;
|
|
||||||
|
|
||||||
loadTime += Time.deltaTime;
|
|
||||||
if (loadTime > 1f / 30f)
|
|
||||||
{
|
|
||||||
loadTime = 0f;
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bool LoadSaveData(SaveData saveData, int index)
|
|
||||||
{
|
|
||||||
var modelData = saveData.modelDatas[index];
|
|
||||||
string assetName = modelData.attributes.FirstOrDefault(x => x[0].Equals("assetName"))?[1];
|
|
||||||
|
|
||||||
if (fbxFileManager.dataRepo.TryGetDataFromName(assetName, out var p))
|
|
||||||
return false;
|
|
||||||
|
|
||||||
string folderName = modelData.attributes.FirstOrDefault(x => x[0].Equals("folderName"))?[1];
|
|
||||||
string createDate = modelData.attributes.FirstOrDefault(x => x[0].Equals("createDate"))?[1];
|
|
||||||
string lastRevisionDate = modelData.attributes.FirstOrDefault(x => x[0].Equals("lastRevisionDate"))?[1];
|
|
||||||
string uploadDate = modelData.attributes.FirstOrDefault(x => x[0].Equals("uploadDate"))?[1];
|
|
||||||
string creator = modelData.attributes.FirstOrDefault(x => x[0].Equals("creator"))?[1];
|
|
||||||
string manager = modelData.attributes.FirstOrDefault(x => x[0].Equals("manager"))?[1];
|
|
||||||
|
|
||||||
Texture2D thumbnail = new Texture2D(1, 1);
|
|
||||||
thumbnail.LoadImage(saveData.thumbnailDatas[index].data);
|
|
||||||
GameObject newObject = new GameObject(assetName);
|
|
||||||
newObject.transform.parent = fbxFileManager.fbxAnchor;
|
|
||||||
CustomAssetData assetData = newObject.AddComponent<CustomAssetData>();
|
|
||||||
assetData.assetName = assetName;
|
|
||||||
assetData.folderName = folderName;
|
|
||||||
assetData.createDate = createDate;
|
|
||||||
assetData.LastRevisionDate = lastRevisionDate;
|
|
||||||
assetData.UploadDate = uploadDate;
|
|
||||||
assetData.Creator = creator;
|
|
||||||
assetData.Manager = manager;
|
|
||||||
assetData.loadedObject = modelData.LoadModelData(fbxFileManager.sharedMaterial);
|
|
||||||
assetData.thumbnail = thumbnail;
|
|
||||||
assetData.OnLoadComplete();
|
|
||||||
|
|
||||||
fbxFileManager.dataRepo.Add(assetData);
|
|
||||||
//listAssets.Add(assetData);
|
|
||||||
ManagerHub.instance.Get<CustomAssetConnector>().assetDataHandler.OnLoadFbxFile(assetData.assetName, assetData.folderName, assetData);
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 34c7091e151c4654f80f16448c43f36d
|
|
||||||
@@ -1,50 +0,0 @@
|
|||||||
using System.Collections;
|
|
||||||
using UnityEngine;
|
|
||||||
using Studio.Manage;
|
|
||||||
using Studio.AssetTool;
|
|
||||||
|
|
||||||
namespace Studio.Command
|
|
||||||
{
|
|
||||||
public class LoadLocalTextureDataCommand : IIrreversibleCommand
|
|
||||||
{
|
|
||||||
private FBXFileManager fbxFileManager;
|
|
||||||
private float loadTime = 0f;
|
|
||||||
|
|
||||||
public LoadLocalTextureDataCommand()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
|
||||||
|
|
||||||
public bool CanExecute()
|
|
||||||
{
|
|
||||||
throw new System.NotImplementedException();
|
|
||||||
}
|
|
||||||
|
|
||||||
public void Execute()
|
|
||||||
{
|
|
||||||
fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
|
|
||||||
|
|
||||||
foreach (var tex in fbxFileManager.saveData.textureDatas)
|
|
||||||
{
|
|
||||||
CoroutineRunner.instance.StartCoroutine(LoadTextureData(tex));
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
IEnumerator LoadTextureData(TextureData texData)
|
|
||||||
{
|
|
||||||
fbxFileManager.sharedMaterial.AddTextureData(texData);
|
|
||||||
|
|
||||||
loadTime += Time.deltaTime;
|
|
||||||
if (loadTime > 1f / 30f)
|
|
||||||
{
|
|
||||||
loadTime = 0f;
|
|
||||||
yield return null;
|
|
||||||
}
|
|
||||||
|
|
||||||
// yield return null;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -1,2 +0,0 @@
|
|||||||
fileFormatVersion: 2
|
|
||||||
guid: 243104ea078b0364e811f6803ef3b3b2
|
|
||||||
@@ -10,12 +10,6 @@ namespace Studio.Command
|
|||||||
{
|
{
|
||||||
private List<ConnectedAsset> removeList = new List<ConnectedAsset>();
|
private List<ConnectedAsset> removeList = new List<ConnectedAsset>();
|
||||||
private List<int> siblingIndex = new List<int>();
|
private List<int> siblingIndex = new List<int>();
|
||||||
private CustomAssetConnector connector;
|
|
||||||
|
|
||||||
public RemoveSelectObjectCommand()
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
|
||||||
|
|
||||||
@@ -27,7 +21,7 @@ namespace Studio.Command
|
|||||||
public void Execute()
|
public void Execute()
|
||||||
{
|
{
|
||||||
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
|
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
|
||||||
connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||||
|
|
||||||
if (renderObjectHandler.selectedRenderObjects.Count == 0)
|
if (renderObjectHandler.selectedRenderObjects.Count == 0)
|
||||||
return;
|
return;
|
||||||
@@ -64,6 +58,7 @@ namespace Studio.Command
|
|||||||
|
|
||||||
public void Undo()
|
public void Undo()
|
||||||
{
|
{
|
||||||
|
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
|
||||||
for (int i = 0; i < removeList.Count; i++)
|
for (int i = 0; i < removeList.Count; i++)
|
||||||
{
|
{
|
||||||
ConnectedAsset connectedAsset = removeList[i];
|
ConnectedAsset connectedAsset = removeList[i];
|
||||||
|
|||||||
@@ -15,6 +15,7 @@ namespace Studio.Command
|
|||||||
Stack<IReversibleCommand> undoableStack = new ();
|
Stack<IReversibleCommand> undoableStack = new ();
|
||||||
public void Invoke(IReversibleCommand command)
|
public void Invoke(IReversibleCommand command)
|
||||||
{
|
{
|
||||||
|
Debug.Log($"Invoke Reversible Command={command}");
|
||||||
command.Execute();
|
command.Execute();
|
||||||
commandStack.Push(command);
|
commandStack.Push(command);
|
||||||
undoableStack.Push(command);
|
undoableStack.Push(command);
|
||||||
@@ -22,6 +23,7 @@ namespace Studio.Command
|
|||||||
|
|
||||||
public void Invoke(IIrreversibleCommand command)
|
public void Invoke(IIrreversibleCommand command)
|
||||||
{
|
{
|
||||||
|
Debug.Log($"Invoke Irreversible Command={command}");
|
||||||
command.Execute();
|
command.Execute();
|
||||||
commandStack.Push(command);
|
commandStack.Push(command);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user