기지모 버그 수정 및 LoadData Command 리팩토링 #55

Merged
UVCXR merged 3 commits from pgd/20250425 into main 2025-04-29 10:44:03 +09:00
8 changed files with 45 additions and 50 deletions

View File

@@ -17,19 +17,19 @@ namespace XED.Manage
{
public class FBXFileManager : Manager
{
CustomAssetDataRepository dataRepo;
public CustomAssetDataRepository dataRepo;
public string identifier;
public string password;
public UnityEvent<string> onRemoveFbxFile;
private SaveData saveData;
public SaveData saveData;
private Queue<string> loadFilePath = new Queue<string>();
private SharedMaterial sharedMaterial;
public SharedMaterial sharedMaterial;
private MessagePackFileManager<SaveData> messagePacker;
private bool isSaveTaskComplete = true;
public bool isLoadTaskComplete = true;
private Transform fbxAnchor;
public Transform fbxAnchor;
public FBXFileManager()
{
@@ -145,16 +145,9 @@ namespace XED.Manage
yield break;
}
saveData = task.Result;
// float loadTime = 0f;
var command = new LoadLocalTextureDataCommand(sharedMaterial, saveData.textureDatas);
CommandInvoker.instance.Invoke(command);
var command2 = new LoadLocalModelDataCommand(saveData, dataRepo, fbxAnchor, sharedMaterial);
CommandInvoker.instance.Invoke(command2);
saveData = task.Result;
CommandInvoker.instance.Invoke(new LoadLocalTextureDataCommand());
CommandInvoker.instance.Invoke(new LoadLocalModelDataCommand());
isLoadTaskComplete = true;
}

View File

@@ -20,7 +20,7 @@ namespace XED.Util
List<CustomAssetRenderObject> copyRenderObjects = new List<CustomAssetRenderObject>();
List<GameObject> selectedGameObjects = new List<GameObject>();
CustomAssetRenderObject prevSelectedObject;
RTGController rtgController;
public RTGController rtgController;
ConvexHullCalculator convexHullCalculator = new ConvexHullCalculator();
UserInputManager userInputManager;
Vector3 clickBeginPos;

View File

@@ -10,19 +10,12 @@ namespace XED.Command
{
public class LoadLocalModelDataCommand : IIrreversibleCommand
{
private SaveData saveData;
private CustomAssetDataRepository dataRepo;
private Transform fbxAnchor;
private SharedMaterial sharedMaterial;
float loadTime = 0f;
private FBXFileManager fbxFileManager;
private float loadTime = 0f;
public LoadLocalModelDataCommand(SaveData saveData, CustomAssetDataRepository dataRepo, Transform fbxAnchor, SharedMaterial sharedMaterial)
public LoadLocalModelDataCommand()
{
this.saveData = saveData;
this.dataRepo = dataRepo;
this.fbxAnchor = fbxAnchor;
this.sharedMaterial = sharedMaterial;
}
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
@@ -34,7 +27,9 @@ namespace XED.Command
public void Execute()
{
for (int i = 0; i < saveData.modelDatas.Length; i++)
fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
for (int i = 0; i < fbxFileManager.saveData.modelDatas.Length; i++)
{
CoroutineRunner.instance.StartCoroutine(LoadModelData(i));
}
@@ -42,7 +37,7 @@ namespace XED.Command
IEnumerator LoadModelData(int index)
{
if (!LoadSaveData(saveData, index))
if (!LoadSaveData(fbxFileManager.saveData, index))
yield break;
loadTime += Time.deltaTime;
@@ -58,7 +53,7 @@ namespace XED.Command
var modelData = saveData.modelDatas[index];
string assetName = modelData.attributes.FirstOrDefault(x => x[0].Equals("assetName"))?[1];
if (dataRepo.TryGetDataFromName(assetName, out var p))
if (fbxFileManager.dataRepo.TryGetDataFromName(assetName, out var p))
return false;
string folderName = modelData.attributes.FirstOrDefault(x => x[0].Equals("folderName"))?[1];
@@ -71,7 +66,7 @@ namespace XED.Command
Texture2D thumbnail = new Texture2D(1, 1);
thumbnail.LoadImage(saveData.thumbnailDatas[index].data);
GameObject newObject = new GameObject(assetName);
newObject.transform.parent = fbxAnchor;
newObject.transform.parent = fbxFileManager.fbxAnchor;
CustomAssetData assetData = newObject.AddComponent<CustomAssetData>();
assetData.assetName = assetName;
assetData.folderName = folderName;
@@ -80,11 +75,11 @@ namespace XED.Command
assetData.UploadDate = uploadDate;
assetData.Creator = creator;
assetData.Manager = manager;
assetData.loadedObject = modelData.LoadModelData(sharedMaterial);
assetData.loadedObject = modelData.LoadModelData(fbxFileManager.sharedMaterial);
assetData.thumbnail = thumbnail;
assetData.OnLoadComplete();
dataRepo.Add(assetData);
fbxFileManager.dataRepo.Add(assetData);
//listAssets.Add(assetData);
ManagerHub.instance.Get<CustomAssetConnector>().assetDataHandler.OnLoadFbxFile(assetData.assetName, assetData.folderName, assetData);

View File

@@ -6,15 +6,12 @@ namespace XED.Command
{
public class LoadLocalTextureDataCommand : IIrreversibleCommand
{
private SharedMaterial sharedMaterial;
private TextureData[] textureData;
private FBXFileManager fbxFileManager;
private float loadTime = 0f;
float loadTime = 0f;
public LoadLocalTextureDataCommand(SharedMaterial sharedMaterial, TextureData[] textureData)
public LoadLocalTextureDataCommand()
{
this.sharedMaterial = sharedMaterial;
this.textureData = textureData;
}
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
@@ -25,8 +22,10 @@ namespace XED.Command
}
public void Execute()
{
foreach (var tex in textureData)
{
fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
foreach (var tex in fbxFileManager.saveData.textureDatas)
{
CoroutineRunner.instance.StartCoroutine(LoadTextureData(tex));
}
@@ -35,7 +34,7 @@ namespace XED.Command
IEnumerator LoadTextureData(TextureData texData)
{
sharedMaterial.AddTextureData(texData);
fbxFileManager.sharedMaterial.AddTextureData(texData);
loadTime += Time.deltaTime;
if (loadTime > 1f / 30f)

View File

@@ -1,5 +1,6 @@
using XED.Manage;
using XED.RuntimeGizmo;
using XED.Util;
namespace XED.Command
{
@@ -19,8 +20,8 @@ namespace XED.Command
public void Execute()
{
var rtgController = new RTGController();
rtgController.SetWorkGizmoId(RTGController.GizmoId.Move);
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.Move);
}
}
}

View File

@@ -1,4 +1,6 @@
using XED.Manage;
using XED.RuntimeGizmo;
using XED.Util;
namespace XED.Command
{
@@ -18,8 +20,8 @@ namespace XED.Command
public void Execute()
{
var rtgController = new RTGController();
rtgController.SetWorkGizmoId(RTGController.GizmoId.Rotate);
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.Rotate);
}
}
}

View File

@@ -1,4 +1,6 @@
using XED.Manage;
using XED.RuntimeGizmo;
using XED.Util;
namespace XED.Command
{
@@ -18,8 +20,8 @@ namespace XED.Command
public void Execute()
{
var rtgController = new RTGController();
rtgController.SetWorkGizmoId(RTGController.GizmoId.Scale);
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.Scale);
}
}
}

View File

@@ -1,4 +1,6 @@
using XED.Manage;
using XED.RuntimeGizmo;
using XED.Util;
namespace XED.Command
{
@@ -18,8 +20,9 @@ namespace XED.Command
public void Execute()
{
var rtgController = new RTGController();
rtgController.SetWorkGizmoId(RTGController.GizmoId.None);
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.None);
}
}
}