Merge branch 'main' into pgd/20250528_3merge

This commit is contained in:
geondo55
2025-05-28 23:08:28 +09:00
74 changed files with 11120 additions and 4060 deletions

View File

@@ -1,24 +0,0 @@
using Studio.Command;
using Studio.Manage;
namespace Studio
{
public class LoadLocalAssetCommand : IIrreversibleCommand
{
public string id { get => throw new System.NotImplementedException(); set => throw new System.NotImplementedException(); }
public bool CanExecute()
{
throw new System.NotImplementedException();
}
public void Execute()
{
var assetManager = ManagerHub.instance.Get<AssetManager>();
var canvas_Popup = CanvasManager.instance.GetCanvas<Canvas_Popup>();
assetManager.CombineAssetFolderPaths(canvas_Popup.panel_assetmanager.GetAssetManagerData().localAssetsPaths);
assetManager.CombineAssetFolderPaths(canvas_Popup.panel_assetsetting.GetAssetManagerData().localAssetsPaths);
assetManager.LoadLocalFBXDirectorys();
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 3b90a946289e83746bd7ab964aeec940

View File

@@ -1,6 +1,7 @@
using Studio.AssetTool;
using Studio.Manage;
using Studio.RuntimeGizmo;
using Studio.UI;
using Studio.Util;
namespace Studio.Command
@@ -23,7 +24,7 @@ namespace Studio.Command
{
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.Move);
CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_toolbar.SetActionToggle(UI.ObjectGizmo.Move, true);
CanvasManager.instance.GetCanvas<Canvas_Static>().panel_toolbox.SetActionToggle(UI.ObjectGizmo.Move, true);
}
}
}

View File

@@ -1,6 +1,7 @@
using Studio.AssetTool;
using Studio.Manage;
using Studio.RuntimeGizmo;
using Studio.UI;
namespace Studio.Command
{
@@ -17,7 +18,8 @@ namespace Studio.Command
{
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.Rotate);
CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_toolbar.SetActionToggle(UI.ObjectGizmo.Rotate, true);
CanvasManager.instance.GetCanvas<Canvas_Static>().panel_toolbox.SetActionToggle(UI.ObjectGizmo.Rotate, true);
}
}
}

View File

@@ -1,6 +1,7 @@
using Studio.AssetTool;
using Studio.Manage;
using Studio.RuntimeGizmo;
using Studio.UI;
using Studio.Util;
namespace Studio.Command
@@ -23,7 +24,8 @@ namespace Studio.Command
{
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
renderObjectHandler.rtgController.SetWorkGizmoId(RTGController.GizmoId.Scale);
CanvasManager.instance.GetCanvas<Canvas_Popup>().panel_toolbar.SetActionToggle(UI.ObjectGizmo.Scale, true);
CanvasManager.instance.GetCanvas<Canvas_Static>().panel_toolbox.SetActionToggle(UI.ObjectGizmo.Scale, true);
}
}
}

View File

@@ -16,7 +16,15 @@ namespace Studio.Manage
private List<string> folderPathList = new List<string>();
private Dictionary<int, HierarchyItem> itemDict = new Dictionary<int, HierarchyItem>();
private Dictionary<int, string> assetSettingPaths = new Dictionary<int, string>();
private Dictionary<int, string> assetManagerPaths = new Dictionary<int, string>();
public Action<Dictionary<int, string>> onAddMangerPaths;
public Action<Dictionary<int, string>> onAddSettingPaths;
public Action<AssetManagerData> onAssetManagerDatas;
public Action<AssetManagerData> onSetAssetManager;
public Action<AssetManagerData> onSetAssetSetting;
public override void Init()
{
@@ -29,8 +37,11 @@ namespace Studio.Manage
var projectManager = ManagerHub.instance.Get<ProjectManager>();
fbxFileManager.onLoadComplete += OnLoadCustomAsset;
onAssetManagerDatas += canvas_Popup.panel_assetmanager.SetAssetManager;
onAssetManagerDatas += canvas_Popup.panel_assetsetting.SetAssetManager;
onAddSettingPaths += canvas_Popup.panel_assetsetting.SetAssetPathItmes;
onAddMangerPaths += canvas_Popup.panel_assetmanager.SetAssetPathItmes;
onSetAssetManager += canvas_Popup.panel_assetmanager.SetAssetManager;
onSetAssetSetting += canvas_Popup.panel_assetsetting.SetAssetManager;
onAssetManagerDatas += (data) => projectManager.OpenProjectSettingsDataAfterDataLoad();
}
@@ -39,8 +50,40 @@ namespace Studio.Manage
localAssetPaths.Clear();
folderPathList.Clear();
}
public void LoadAssetManagerFBXDirectorys(int index, string folderPath)
{
if (!assetManagerPaths.ContainsKey(index))
{
assetManagerPaths.Add(index, folderPath);
}
else
{
assetManagerPaths[index] = folderPath;
}
onAddSettingPaths?.Invoke(assetManagerPaths);
CombineAssetFolderPaths(assetManagerPaths.Values.ToList());
}
public void LoadAssetSettingFBXDirectorys(int index, string folderPath)
{
if (!assetSettingPaths.ContainsKey(index))
{
assetSettingPaths.Add(index, folderPath);
}
else
{
assetSettingPaths[index] = folderPath;
}
onAddMangerPaths?.Invoke(assetSettingPaths);
CombineAssetFolderPaths(assetSettingPaths.Values.ToList());
}
public void CombineAssetFolderPaths(List<string> folderPaths)
{
ClearFolderPathList();
if (folderPaths == null)
return;
foreach(var folderPath in folderPaths)
{
if (folderPathList.Contains(folderPath))
@@ -50,6 +93,8 @@ namespace Studio.Manage
folderPathList.Add(folderPath);
localAssetPaths.Add(folderPath);
}
LoadLocalFBXDirectorys();
}
public void LoadLocalFBXDirectorys()
{
@@ -60,6 +105,11 @@ namespace Studio.Manage
assetManagerData.localAssetsPaths.AddRange(folderPathList);
onAssetManagerDatas?.Invoke(assetManagerData);
}
public void SetAssetManager(AssetManagerData data)
{
onSetAssetManager?.Invoke(data);
onSetAssetSetting?.Invoke(data);
}
private void OnLoadCustomAsset()
{

View File

@@ -48,6 +48,7 @@ namespace Studio.AssetTool
}
public void ClearFilePaths()
{
dataRepo.assetDatas.Clear();
filePaths.Clear();
}
public void LoadLocalFBXDirectorys(List<string> folderPaths)
@@ -62,6 +63,11 @@ namespace Studio.AssetTool
public void LoadLocalFBXDirectory(string folderPath)
{
if (!Directory.Exists(folderPath))
{
return;
}
var files = Directory.GetFiles(folderPath, "*.fbx", SearchOption.AllDirectories);
foreach (var file in files)
@@ -93,7 +99,6 @@ namespace Studio.AssetTool
if (dataRepo.TryGetDataFromName(assetName, out var p))
{
OnLoadComplete(p);
continue;
}

View File

@@ -133,7 +133,7 @@ namespace Studio.Manage
sceneSettingService.SetMQTTSettingData(curProjectData.sceneStartSetting.mqttSetting);
assetManager.CombineAssetFolderPaths(curProjectData.assetManagerData.localAssetsPaths);
assetManager.LoadLocalFBXDirectorys();
assetManager.SetAssetManager(curProjectData.assetManagerData);
}
else
{

View File

@@ -27,7 +27,7 @@ namespace Studio.Manage
{
}
public void ChangeState()
void ChangeState()
{
ManagerHub.instance.Get<RenderObjectHandler>().rtgController.ResetGizmo();
ManagerHub.instance.Get<CustomAssetConnector>().OnDeselectAll();
@@ -49,6 +49,7 @@ namespace Studio.Manage
public void Run()
{
ChangeState();
MQTTConeect();
onRun?.Invoke();
}

View File

@@ -79,13 +79,14 @@ namespace Studio
canvasHandler = new PopupCanvasHandler(this);
var assetManager = ManagerHub.instance.Get<AssetManager>();
var dataManager = FindAnyObjectByType<ConnectDataManager>();
var quitManager = FindAnyObjectByType<QuitManager>();
panel_newprojectinfo.onClickCreate += () => CommandInvoker.instance.Invoke(new NewProjectCommand());
panel_openprojectinfo.onClickOpen += () => CommandInvoker.instance.Invoke(new OpenProjectCommand());
panel_assetmanager.onSelectedURLs += () => CommandInvoker.instance.Invoke(new LoadLocalAssetCommand());
panel_assetsetting.onSelectedURLs += () => CommandInvoker.instance.Invoke(new LoadLocalAssetCommand());
panel_assetmanager.onSelectedURL += assetManager.LoadAssetManagerFBXDirectorys;
panel_assetsetting.onSelectedURL += assetManager.LoadAssetSettingFBXDirectorys;
panel_saveandnewchecker.onClickSaveAndNew += () => CommandInvoker.instance.Invoke(new SaveAndNewProjectCommand());
panel_saveandopenchecker.onClickSaveAndOpen += () => CommandInvoker.instance.Invoke(new SaveAndOpenProjectCommand());

View File

@@ -13,6 +13,7 @@ namespace Studio.UI
{
public Panel_StudioTopBar panel_studiotopbar;
public Panel_SceneTab panel_scenetab;
public Panel_Toolbox panel_toolbox;
private void Awake()
{
@@ -34,7 +35,7 @@ namespace Studio.UI
panel_studiotopbar.onClickOpenProject += projectManager.TopMenuOpenProjectSettingData;
panel_studiotopbar.onClickSaveProject += () => CommandInvoker.instance.Invoke(new SaveProjectCommand());
panel_studiotopbar.onClickPlay += runManager.ChangeState;
panel_studiotopbar.onClickPlay += runManager.Run;
}
}
}

View File

@@ -12,7 +12,7 @@ namespace Studio.UI
private TMP_InputField InputField_URL;
private Button Button_SelectedFolder;
public Action onEndEditInputFieldURL;
public Action<UI_FolderPathItem> onEndEditInputFieldURL;
public override void AfterAwake()
{
@@ -28,7 +28,7 @@ namespace Studio.UI
if (string.IsNullOrEmpty(input))
return;
onEndEditInputFieldURL?.Invoke();
onEndEditInputFieldURL?.Invoke(this);
}
private void OnClickSelectedFolderButton()
{

View File

@@ -1,6 +1,8 @@
using Studio.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
@@ -26,9 +28,9 @@ namespace Studio.UI
private UI_FolderPathItem prf_folderPathItem;
private List<UI_FolderPathItem> folderPathItems = new List<UI_FolderPathItem>();
private List<string> selectedURLs = new List<string>();
private Dictionary<int, string> selectedURLs = new Dictionary<int, string>();
public Action onSelectedURLs;
public Action<int, string> onSelectedURL;
public override void AfterAwake()
{
@@ -37,7 +39,7 @@ namespace Studio.UI
toggleGroup = TabToggles.GetComponent<ToggleGroup>();
Toggle_ServerAssets.onValueChanged.AddListener(OnServerAssetsValueChanged);
Toggle_LocalAssets.onValueChanged.AddListener(OnLocalAssetsValueChanged);
Toggle_AssetHierarchy.onValueChanged.AddListener(OnSAssetHierarchyValueChanged);
Toggle_AssetHierarchy.onValueChanged.AddListener(OnAssetHierarchyValueChanged);
Toggle_ServerAssets.group = toggleGroup;
Toggle_LocalAssets.group = toggleGroup;
@@ -58,41 +60,86 @@ namespace Studio.UI
}
private void OnServerAssetsValueChanged(bool isOn)
{
SetToggleChanged(Toggle_ServerAssets, isOn);
ServerAssets.gameObject.SetActive(isOn);
}
private void OnLocalAssetsValueChanged(bool isOn)
{
SetToggleChanged(Toggle_LocalAssets, isOn);
LocalAssets.gameObject.SetActive(isOn);
}
private void OnSAssetHierarchyValueChanged(bool isOn)
private void OnAssetHierarchyValueChanged(bool isOn)
{
SetToggleChanged(Toggle_AssetHierarchy, isOn);
AssetHierarchy.gameObject.SetActive(isOn);
}
private void SetToggleChanged(Toggle toggle, bool isOn)
{
Debug.Log($"SetToggleChanged: {toggle.name} isOn: {isOn}");
var image = toggle.transform.GetChild(0).GetComponent<Image>();
image.gameObject.SetActive(isOn);
TextMeshProUGUI text = toggle.GetComponentInChildren<TextMeshProUGUI>();
if (isOn)
{
text.color = Color.white;
}
else
{
text.color = Color.black;
}
}
private void OnClickAddFolderPathItemButton()
{
selectedURLs.Clear();
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
folderPathItems.Add(item);
item.onEndEditInputFieldURL += LoadAsstsPath;
selectedURLs.Add(folderPathItems.IndexOf(item), item.GetURL());
Button_AddFolderPathItem.transform.SetAsLastSibling();
}
private void LoadAsstsPath()
private void LoadAsstsPath(UI_FolderPathItem item)
{
foreach(var item in folderPathItems)
for(int i = 0; i < folderPathItems.Count; i++)
{
selectedURLs.Add(item.GetURL());
if(folderPathItems[i] == item)
{
onSelectedURL?.Invoke(i, item.GetURL());
}
}
onSelectedURLs?.Invoke();
}
public AssetManagerData GetAssetManagerData()
{
var assetManagerData = new AssetManagerData();
assetManagerData.localAssetsPaths.AddRange(selectedURLs);
assetManagerData.localAssetsPaths.AddRange(selectedURLs.Values.ToList());
return assetManagerData;
}
public void SetAssetPathItmes(Dictionary<int, string> paths)
{
var keys = paths.Keys.ToList();
for (int i = 0; i < keys.Count; i++)
{
int key = keys[i];
if (selectedURLs.ContainsKey(key))
{
folderPathItems[i].SetData(paths[key]);
selectedURLs[key] = paths[key];
}
else
{
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
item.onEndEditInputFieldURL += LoadAsstsPath;
item.SetData(paths[key]);
folderPathItems.Add(item);
selectedURLs.Add(key, item.GetURL());
Button_AddFolderPathItem.transform.SetAsLastSibling();
}
}
}
public void SetAssetManager(AssetManagerData assetManagerData)
{
selectedURLs.Clear();
@@ -106,13 +153,13 @@ namespace Studio.UI
if (assetManagerData == null)
return;
foreach (var localPath in assetManagerData.localAssetsPaths)
for (int i = 0; i < assetManagerData.localAssetsPaths.Count; i++)
{
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
item.onEndEditInputFieldURL += LoadAsstsPath;
item.SetData(localPath);
item.SetData(assetManagerData.localAssetsPaths[i]);
folderPathItems.Add(item);
selectedURLs.Add(item.GetURL());
selectedURLs.Add(i,item.GetURL());
Button_AddFolderPathItem.transform.SetAsLastSibling();
}

View File

@@ -1,6 +1,7 @@
using Studio.Util;
using System;
using System.Collections.Generic;
using System.Linq;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
@@ -25,9 +26,9 @@ namespace Studio.UI
private UI_FolderPathItem prf_folderPathItem;
private List<UI_FolderPathItem> folderPathItems = new List<UI_FolderPathItem>();
private List<string> selectedURLs = new List<string>();
private Dictionary<int, string> selectedURLs = new Dictionary<int, string>();
public Action onSelectedURLs;
public Action<int, string> onSelectedURL;
public override void AfterAwake()
{
@@ -64,29 +65,55 @@ namespace Studio.UI
}
private void OnClickAddFolderPathItemButton()
{
selectedURLs.Clear();
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
folderPathItems.Add(item);
item.onEndEditInputFieldURL += LoadAsstsPath;
selectedURLs.Add(folderPathItems.IndexOf(item), item.GetURL());
Button_AddFolderPathItem.transform.SetAsLastSibling();
}
private void LoadAsstsPath()
private void LoadAsstsPath(UI_FolderPathItem item)
{
foreach (var item in folderPathItems)
for (int i = 0; i < folderPathItems.Count; i++)
{
selectedURLs.Add(item.GetURL());
if (folderPathItems[i] == item)
{
onSelectedURL?.Invoke(i, item.GetURL());
}
}
onSelectedURLs?.Invoke();
}
public AssetManagerData GetAssetManagerData()
{
var assetManagerData = new AssetManagerData();
assetManagerData.localAssetsPaths.AddRange(selectedURLs);
assetManagerData.localAssetsPaths.AddRange(selectedURLs.Values.ToList());
return assetManagerData;
}
public void SetAssetPathItmes(Dictionary<int, string> paths)
{
var keys = paths.Keys.ToList();
for (int i = 0; i < keys.Count; i++)
{
int key = keys[i];
if (selectedURLs.ContainsKey(key))
{
folderPathItems[i].SetData(paths[key]);
selectedURLs[key] = paths[key];
}
else
{
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
item.onEndEditInputFieldURL += LoadAsstsPath;
item.SetData(paths[key]);
folderPathItems.Add(item);
selectedURLs.Add(key, item.GetURL());
Button_AddFolderPathItem.transform.SetAsLastSibling();
}
}
}
public void SetAssetManager(AssetManagerData assetManagerData)
{
selectedURLs.Clear();
@@ -100,13 +127,13 @@ namespace Studio.UI
if (assetManagerData == null)
return;
foreach (var localPath in assetManagerData.localAssetsPaths)
for (int i = 0; i < assetManagerData.localAssetsPaths.Count; i++)
{
var item = Instantiate(prf_folderPathItem, Content_LocalAssets);
item.onEndEditInputFieldURL += LoadAsstsPath;
item.SetData(localPath);
item.SetData(assetManagerData.localAssetsPaths[i]);
folderPathItems.Add(item);
selectedURLs.Add(item.GetURL());
selectedURLs.Add(i, item.GetURL());
Button_AddFolderPathItem.transform.SetAsLastSibling();
}

View File

@@ -25,7 +25,7 @@ namespace Studio.UI
/*Window*/
public Button Button_DataStorage;
public Button Button_DataUpdateSetting;
public Button Button_AssetManager;
public Button Button_AssetSetting;
public Button Button_AssetLibraryWindow;
public Button Button_HierarchyWindow;
@@ -54,7 +54,7 @@ namespace Studio.UI
Button_DataStorage.onClick.AddListener(OnClickDataStorage);
Button_DataUpdateSetting.onClick.AddListener(OnClickDataUpdateSetting);
Button_AssetManager.onClick.AddListener(OnClickAssetManager);
Button_AssetSetting.onClick.AddListener(OnClickAssetManager);
Button_AssetLibraryWindow.onClick.AddListener(OnClickAssetLibraryWindow);
Button_HierarchyWindow.onClick.AddListener(OnClickHierarchyWindow);