Merge branch 'jym/250522_00' into jym/250522_01

# Conflicts:
#	Assets/Scripts/Studio/UI/Canvas/Canvas_Static.cs
This commit is contained in:
정영민
2025-05-22 17:29:47 +09:00
96 changed files with 15105 additions and 131671 deletions

File diff suppressed because one or more lines are too long

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 7f1ab105e95a7ee44965ac5927623809
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 07b2c65fe41bd8e43a7bcbd12ddeda0d
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 319962c572705f943b93efea9c0d6e93
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 2284d63b7488f2b45a99645f208eca55
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
{
"defaultLanguage": "Ko",
"languages": {
"Ko": "한국어",
"En": "English",
"Ja": "日本語"
}
}

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: be71b5d18f50b9f4791093ac7cf722d7
TextScriptImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 259f375e4270b6243af7dd67c3770d95
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

File diff suppressed because it is too large Load Diff

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: 83dffcb445724e44eab4e5f3a2fec973
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,7 +0,0 @@
fileFormatVersion: 2
guid: bb4fd155efe15a040bf1c1c936399a6a
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,8 +0,0 @@
fileFormatVersion: 2
guid: 4e0d5bd459141d14892f068ccc1d6c13
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

View File

@@ -1,62 +0,0 @@
using UnityEngine;
using UnityEngine.UI;
using Studio.UI;
using XRLib;
using XRLib.UI;
namespace Studio
{
public class StudioJYMCanvas_Popup : CanvasBase, ISingle
{
public Panel_DataConnectModal panel_dataconnectmodal;
public Panel_AlarmConnectModal panel_alarmconnectmodal;
public Panel_DynamicObjectInfo panel_dynamicobjectinfo;
public Panel_MQTTConnectModal panel_mqttconnectmodal;
public Panel_DataFilterSetting panel_datafiltersetting;
public Panel_APIConnectModal panel_apiconnectmodal;
public Panel_3DFactorySetting panel_3dfactorysetting;
public Panel_DynamicObjectUISetting panel_dynamicobjectuisetting;
public Panel_ExitChecker panel_exitchecker;
private void Awake()
{
canvasHandler = new StudioJYMPopupCanvasHandler(this);
}
public override void AfterAwake()
{
var dataManager = FindAnyObjectByType<ConnectDataManager>();
var quitManager = FindAnyObjectByType<QuitManager>();
panel_dataconnectmodal.onSaveConnectedData += dataManager.SaveData;
panel_alarmconnectmodal.onSaveConnectAlarmData += dataManager.SaveAlarmData;
panel_dynamicobjectinfo.onRetouchData += dataManager.LoadData;
panel_dynamicobjectinfo.onDeleteData += dataManager.RemoveData;
panel_dynamicobjectinfo.onRetouchAlarm += dataManager.LoadAlarmData;
panel_dynamicobjectinfo.onDeleteAlarm += dataManager.RemoveAlarmData;
panel_mqttconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_mqttconnectmodal.onSaveMQTTData += dataManager.SetMQTTData;
panel_apiconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_apiconnectmodal.onSaveAPIData += dataManager.SetAPIData;
dataManager.onConnectData += panel_dynamicobjectinfo.OnConnectData;
dataManager.onLoadData += panel_dataconnectmodal.SetLoadSaveData;
dataManager.onConnectAlarm += panel_dynamicobjectinfo.OnConnectAlarm;
dataManager.onLoadAlarm += panel_alarmconnectmodal.LoadData;
dataManager.mqttData += panel_datafiltersetting.SetLoadMQTTDataList;
dataManager.apiData += panel_datafiltersetting.SetLoadAPIDataList;
panel_exitchecker.onSaveAndExit += quitManager.OnConfirmQuit;
panel_exitchecker.onExit += quitManager.OnConfirmQuit;
panel_exitchecker.onCancel += quitManager.OnCancelQuit;
quitManager.onOpen += panel_exitchecker.Open;
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: ce9c9e8dfd0d6774db8b84fbcc818a4e

View File

@@ -1,19 +0,0 @@
using UnityEngine;
using Studio.Manage;
namespace Studio
{
public class StudioJYMPopupCanvasHandler : CanvasEventHandler
{
public StudioJYMPopupCanvasHandler(StudioJYMCanvas_Popup canvas_Popup)
{
canvas_Popup.panel_dynamicobjectinfo.onConnectedData += canvas_Popup.panel_dataconnectmodal.OpenModal;
canvas_Popup.panel_dynamicobjectinfo.onConnectedAlarm += canvas_Popup.panel_alarmconnectmodal.OpenModal;
canvas_Popup.panel_datafiltersetting.onSaveMQTTFilterData += canvas_Popup.panel_mqttconnectmodal.SetFilterData;
canvas_Popup.panel_datafiltersetting.onSaveAPIFilterData += canvas_Popup.panel_apiconnectmodal.SetFilterData;
canvas_Popup.panel_3dfactorysetting.onUISetting += canvas_Popup.panel_dynamicobjectuisetting.SetData;
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: b312c88a0bcbbd04c959de79c2c4cd71

View File

@@ -31,7 +31,6 @@ namespace Studio
private void Awake()
{
var saveSceneSettingManager = ManagerHub.instance.Get<SaveSceneSettingManager>();
var dataManager = FindAnyObjectByType<ConnectDataManager>();
var quitManager = FindAnyObjectByType<QuitManager>();
@@ -46,9 +45,6 @@ namespace Studio
dataManager.mqttData += panel_datafiltersetting.SetLoadMQTTDataList;
dataManager.apiData += panel_datafiltersetting.SetLoadAPIDataList;
panel_startsetting.onClickSaveButton += saveSceneSettingManager.SaveSceneSettingData;
panel_startsetting.onClickLoadButton += saveSceneSettingManager.LoadSceneSettingData;
panel_exitchecker.onSaveAndExit += quitManager.OnConfirmQuit;
panel_exitchecker.onExit += quitManager.OnConfirmQuit;
panel_exitchecker.onCancel += quitManager.OnCancelQuit;

View File

@@ -4,6 +4,7 @@ using System.Linq;
using TMPro;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
using XRLib.UI;
namespace Studio.UI
@@ -15,6 +16,7 @@ namespace Studio.UI
private RectTransform TemplateDropdown;
private RectTransform Content;
public TMP_InputField InputField_ProjectTemplate;
public Button Button_Dropdown;
private List<string> options = new();
private List<GameObject> activeOptionItems = new List<GameObject>();
@@ -34,7 +36,7 @@ namespace Studio.UI
{
optionItemPrefab = Resources.Load<GameObject>("Prefabs/UI/PRF_QuickStartItem");
InputField_ProjectTemplate.onValueChanged.AddListener(FilteringOption);
InputField_ProjectTemplate.onSelect.AddListener(ShowDropdown);
Button_Dropdown.onClick.AddListener(ShowDropdown);
HideDropdown();
}
@@ -44,7 +46,7 @@ namespace Studio.UI
CreateDropdown();
}
private void ShowDropdown(string input)
private void ShowDropdown()
{
TemplateDropdown.gameObject.SetActive(true);
}

View File

@@ -2,6 +2,7 @@ using System;
using System.Collections.Generic;
using System.Linq;
using TMPro;
using TriLibCore.SFB;
using UnityEngine;
using UnityEngine.EventSystems;
using UnityEngine.UI;
@@ -33,6 +34,12 @@ namespace Studio.UI
private void OnClickFileExplorer()
{
var paths = StandaloneFileBrowser.OpenFolderPanel("Select Folder", "", false);
if (paths.Count > 0 && !string.IsNullOrEmpty(paths[0].Name))
{
InputField_ProjectRoute.text = paths[0].Name;
}
onClickFileExplorer?.Invoke();
}
@@ -50,6 +57,21 @@ namespace Studio.UI
{
SetActive(false);
}
public string GetProjectName()
{
var name = InputField_ProjectName.text;
return name;
}
public string GetProjectRoute()
{
var route = InputField_ProjectRoute.text;
return route;
}
public string GetProjectTemplate()
{
var template = InputField_ProjectTemplate.text;
return template;
}
}
}

View File

@@ -1,5 +1,6 @@
using Ookii.Dialogs;
using System;
using System.Collections.Generic;
using TMPro;
using UnityEngine;
using UnityEngine.UI;
@@ -38,6 +39,7 @@ namespace Studio.UI
CreateRecentProjectItem();
}
}
private int MaxRecentCount = 5;
private void OnClickFileExplorer()
{
@@ -49,7 +51,7 @@ namespace Studio.UI
onClickServer?.Invoke();
}
private void CreateRecentProjectItem()
public void CreateRecentProjectItem()
{
UI_QuickStartItem item = Instantiate(recentProjectItemPrefab, Content).GetComponent<UI_QuickStartItem>();
item.Init(name, OnClickItem);

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 760eabef824940d46a364a011f425b80
DefaultImporter:
guid: c70df26a59bf353419dcf25ee33b394d
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: c396f0856dfdd3c4f880ec92b8e0f57b
DefaultImporter:
guid: 96b73e9674fb61c489cee99ad24c044c
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -1,6 +1,6 @@
fileFormatVersion: 2
guid: 9a6930af93fbf0e4ab56103bf715341e
DefaultImporter:
guid: ca5e845ff3c23fb41a1de8c2563209f1
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:

View File

@@ -175,7 +175,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 69, y: -30}
m_SizeDelta: {x: 395, y: 260}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &4447635709919238091
MonoBehaviour:
@@ -405,8 +405,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 197.5, y: -235}
m_SizeDelta: {x: 395, y: 50}
m_AnchoredPosition: {x: 190, y: -235}
m_SizeDelta: {x: 380, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &3869925964300780349
MonoBehaviour:
@@ -439,7 +439,7 @@ MonoBehaviour:
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_ChildAlignment: 4
m_Spacing: 15
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
@@ -461,6 +461,7 @@ MonoBehaviour:
m_Name:
m_EditorClassIdentifier:
InputField_ProjectTemplate: {fileID: 0}
Button_Dropdown: {fileID: 0}
--- !u!1 &1566409390313159280
GameObject:
m_ObjectHideFlags: 0
@@ -494,10 +495,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 1006177941616694947}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 370, y: -25}
m_SizeDelta: {x: 50, y: 50}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 35, y: 35}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &2597334574092785859
CanvasRenderer:
@@ -527,7 +528,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Sprite: {fileID: 21300000, guid: 3faebebfb41380b4f8820adf0d965690, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
@@ -615,9 +616,9 @@ RectTransform:
- {fileID: 1387504124464107639}
m_Father: {fileID: 1006177941616694947}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 165, y: -25}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 330, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6489818086456709659
@@ -830,9 +831,9 @@ RectTransform:
- {fileID: 3298123843380424090}
m_Father: {fileID: 8106588635392288030}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 165, y: -25}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 330, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &3678092585867565062
@@ -1248,9 +1249,9 @@ RectTransform:
- {fileID: 8531504345396472170}
m_Father: {fileID: 136411123651892915}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 165, y: -115}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 330, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &6960228995400798344
@@ -1426,9 +1427,9 @@ RectTransform:
- {fileID: 8036671826876076572}
m_Father: {fileID: 2374106145558075720}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 75, y: -25}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 150, y: 50}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &1458952179684348920
@@ -1549,7 +1550,7 @@ RectTransform:
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -30, y: 30}
m_SizeDelta: {x: 150, y: 50}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 1, y: 0}
--- !u!114 &2127692188490003074
MonoBehaviour:
@@ -1627,8 +1628,8 @@ RectTransform:
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 197.5, y: -175}
m_SizeDelta: {x: 395, y: 50}
m_AnchoredPosition: {x: 190, y: -175}
m_SizeDelta: {x: 380, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &1531445533758858613
MonoBehaviour:
@@ -1661,7 +1662,7 @@ MonoBehaviour:
m_Right: 0
m_Top: 0
m_Bottom: 0
m_ChildAlignment: 0
m_ChildAlignment: 4
m_Spacing: 15
m_ChildForceExpandWidth: 1
m_ChildForceExpandHeight: 1
@@ -1999,7 +2000,7 @@ RectTransform:
m_AnchorMin: {x: 0.5, y: 0.5}
m_AnchorMax: {x: 0.5, y: 0.5}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 60.67, y: 23.01}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &7393072861479048946
CanvasRenderer:
@@ -2273,10 +2274,10 @@ RectTransform:
m_Children: []
m_Father: {fileID: 8106588635392288030}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 0, y: 1}
m_AnchoredPosition: {x: 370, y: -25}
m_SizeDelta: {x: 50, y: 50}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 35, y: 35}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!222 &257133671529932623
CanvasRenderer:
@@ -2306,7 +2307,7 @@ MonoBehaviour:
m_OnCullStateChanged:
m_PersistentCalls:
m_Calls: []
m_Sprite: {fileID: 0}
m_Sprite: {fileID: 21300000, guid: 2ef3369460b480c41a1ca769aa259384, type: 3}
m_Type: 0
m_PreserveAspect: 0
m_FillCenter: 1
@@ -2430,7 +2431,7 @@ GameObject:
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 0
m_IsActive: 1
--- !u!224 &7897775839679072582
RectTransform:
m_ObjectHideFlags: 0
@@ -2438,7 +2439,7 @@ RectTransform:
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 6092324537095634317}
m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
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
@@ -2649,7 +2650,7 @@ RectTransform:
m_Father: {fileID: 6761078585089155405}
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 1, y: 1}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: 20, y: 20}
m_Pivot: {x: 0.5, y: 0.5}
@@ -3130,7 +3131,7 @@ RectTransform:
m_AnchorMin: {x: 0, y: 1}
m_AnchorMax: {x: 1, y: 1}
m_AnchoredPosition: {x: 0, y: 0}
m_SizeDelta: {x: -313, y: 0}
m_SizeDelta: {x: 0, y: 0}
m_Pivot: {x: 0, y: 1}
--- !u!114 &5481025570043610218
MonoBehaviour:

View File

@@ -1,8 +1,8 @@
{
"dataList": [
"dynamic3DModelUISetting": [
{
"name": "XR/AGV",
"datas": [
"dynamic3DModelUIData": [
{
"dataName": "Position",
"dataValue": "30,25.5,15.3"
@@ -19,7 +19,7 @@
},
{
"name": "XR/AMR",
"datas": [
"dynamic3DModelUIData": [
{
"dataName": "Position",
"dataValue": "30,25.5,15.3"

File diff suppressed because it is too large Load Diff

View File

@@ -19,11 +19,8 @@ namespace Studio.Command
public void Execute()
{
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
var projectManager = ManagerHub.instance.Get<ProjectManager>();
projectManager.curProjectPath = string.Empty;
projectManager.curProjectData = null;
projectManager.NewProjectSettingData();
CommandInvoker.instance.Invoke(new RemoveAllObjectCommand());
}

View File

@@ -27,43 +27,60 @@ namespace Studio
public void Execute()
{
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
var projectManager = ManagerHub.instance.Get<ProjectManager>();
var assetDataService = new AssetDataService();
projectManager.SaveProjectSettingData();
bool isNewProject = string.IsNullOrEmpty(projectManager.curProjectPath);
string path = isNewProject ? GetSaveFilePath() : projectManager.curProjectData.filePath;
//var connector = ManagerHub.instance.Get<CustomAssetConnector>();
//var projectManager = ManagerHub.instance.Get<ProjectManager>();
if (string.IsNullOrEmpty(path))
return;
//var assetDataService = new AssetDataService();
List<AssetData> assetDatas = assetDataService.SortAssetDatas(connector.connectedAssets);
ProjectData projectData = CreateProjectData(path, assetDatas);
//bool isNewProject = string.IsNullOrEmpty(projectManager.curProjectPath);
//string path = isNewProject ? GetSaveFilePath() : projectManager.curProjectData.filePath;
string json = JsonConvert.SerializeObject(projectData);
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.Unicode);
writer.Write(json);
writer.Close();
//if (string.IsNullOrEmpty(path))
// return;
projectManager.curProjectPath = path;
projectManager.curProjectData = projectData;
//List<AssetData> assetDatas = assetDataService.SortAssetDatas(connector.connectedAssets);
//ProjectData projectData = CreateProjectData(path, assetDatas);
//string json = JsonConvert.SerializeObject(projectData);
//FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
//StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.Unicode);
//writer.Write(json);
//writer.Close();
//projectManager.curProjectPath = path;
//projectManager.curProjectData = projectData;
}
private ProjectData CreateProjectData(string path, List<AssetData> assetDatas)
{
return new ProjectData
{
filePath = path,
updateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
assetDatas = assetDatas
};
}
//private ProjectData CreateProjectData(string path, List<AssetData> assetDatas)
//{
// return new ProjectData
// {
// filePath = path,
// updateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
// sceneStartSetting = CreateSceneStartSettingData(),
// assetDatas = assetDatas
// };
//}
//private SceneStartSetting CreateSceneStartSettingData()
//{
// var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
private string GetSaveFilePath()
{
var data = StandaloneFileBrowser.SaveFilePanel("SaveProject", "", "", "json");
return data.Name;
}
// var sceneStartSetting = new SceneStartSetting();
// sceneStartSetting.appSetting = canvas_Popup.panel_appsetting.GetAppSetting();
// sceneStartSetting.apiSetting = canvas_Popup.panel_apisetting.GetAPISetting();
// sceneStartSetting.mqttSetting = canvas_Popup.panel_mqttsetting.GetMQTTSetting();
// sceneStartSetting.saveModelDatas = canvas_Popup.panel_3dfactorysetting.Get3DFactorySetting();
// return sceneStartSetting;
//}
//private string GetSaveFilePath()
//{
// var data = StandaloneFileBrowser.SaveFilePanel("SaveProject", "", "", "json");
// return data.Name;
//}
}
}

View File

@@ -5,11 +5,82 @@ namespace Studio.Util
{
public class ProjectData
{
public string filePath;
public string updateDate;
public SceneStartSetting sceneStartSetting;
public List<AssetData> assetDatas;
}
public class SceneStartSetting
{
public AppSetting appSetting;
public APISetting apiSetting;
public MQTTSetting mqttSetting;
public Dynamic3DModelSetting factorySetting;
}
public class AppSetting
{
public string splashImageByte;
public string animationStyle;
public string progressBarStyle;
public bool autoStart;
public string defaultLanauge;
public string languagePackPath;
}
public class APISetting
{
public List<APIConnection> apiConnections = new List<APIConnection>();
}
public class APIConnection
{
public string domain;
public string port;
public List<URL> urls = new List<URL>();
}
public class URL
{
public string url;
}
public class MQTTSetting
{
public List<MQTTConnection> mqttConnections = new List<MQTTConnection>();
}
public class MQTTConnection
{
public string domain;
public string port;
public List<Topic> topics = new List<Topic>();
}
public class Topic
{
public string topic;
}
public class Dynamic3DModelSetting
{
public List<Dynamic3DModelConnection> modelDatas = new List<Dynamic3DModelConnection>();
}
public class Dynamic3DModelConnection
{
public string dataName;
public string modelName;
public Dynamic3DModelUISetting modelData;
}
public class Dynamic3DModelUISetting
{
public string name;
public string dashboardStyle;
public List<Dynamic3DModelUIData> dynamic3DModelUIData = new List<Dynamic3DModelUIData>();
}
public class Dynamic3DModelUIData
{
public string dataName;
public string dataType;
public string dataValue;
}
public class AssetData
{
public int id;

View File

@@ -23,7 +23,6 @@ namespace Studio.Manage
Join(new NodeGizmoController());
Join(new AGVNodeLinkManager());
Join(new AGVManager());
Join(new SaveSceneSettingManager());
foreach(var m in managers)
{

View File

@@ -2,31 +2,114 @@ using Newtonsoft.Json;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using TriLibCore.Dae.Schema;
using TriLibCore.SFB;
using UnityEditor;
using Studio.AssetTool;
using Studio.Command;
using Studio.HierarchyTree;
using Studio.Service;
using Studio.Util;
using XRLib;
using UnityEngine;
namespace Studio.Manage
{
public class ProjectManager : Manager
{
public string curProjectName;
public string curProjectPath;
public string curProjectTemplate;
public ProjectData curProjectData;
public Action<AppSetting> onAppSetting;
public Action<APISetting> onAPISetting;
public Action<MQTTSetting> onMQTTSetting;
public Action<Dynamic3DModelSetting> onSaveModelDatas;
public ProjectManager()
{
}
public override void Init()
{
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
onAppSetting += canvas_Popup.panel_appsetting.SetAppSetting;
onAPISetting += canvas_Popup.panel_apisetting.SetAPISetting;
onMQTTSetting += canvas_Popup.panel_mqttsetting.SetMQTTSetting;
onSaveModelDatas += canvas_Popup.panel_3dfactorysetting.SetDynamic3DModelSetting;
}
}
}
public void NewProjectSettingData()
{
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
curProjectName = canvas_Popup.panel_newprojectinfo.GetProjectName();
curProjectPath = canvas_Popup.panel_newprojectinfo.GetProjectRoute();
curProjectTemplate = canvas_Popup.panel_newprojectinfo.GetProjectTemplate();
curProjectData = null;
}
public void LoadSceneSettingData()
{
string path = Path.Combine(Application.persistentDataPath, "SceneStartSetting.json");
if (File.Exists(path))
{
string json = File.ReadAllText(path);
var loadedSetting = JsonConvert.DeserializeObject<SceneStartSetting>(json);
onAppSetting?.Invoke(loadedSetting.appSetting);
onAPISetting?.Invoke(loadedSetting.apiSetting);
onMQTTSetting?.Invoke(loadedSetting.mqttSetting);
onSaveModelDatas?.Invoke(loadedSetting.factorySetting);
}
else
{
Debug.LogWarning("JSON file not found: " + path);
}
}
public void SaveProjectSettingData()
{
var connector = ManagerHub.instance.Get<CustomAssetConnector>();
var assetDataService = new AssetDataService();
bool isNewProject = string.IsNullOrEmpty(curProjectPath);
string path = isNewProject ? GetSaveFilePath() : Path.Combine(curProjectPath, curProjectName + ".ocs");
if (string.IsNullOrEmpty(path))
return;
List<AssetData> assetDatas = assetDataService.SortAssetDatas(connector.connectedAssets);
curProjectData = CreateProjectData(assetDatas);
string json = JsonConvert.SerializeObject(curProjectData, Formatting.Indented);
FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write);
StreamWriter writer = new StreamWriter(fs, System.Text.Encoding.Unicode);
writer.Write(json);
writer.Close();
}
private ProjectData CreateProjectData(List<AssetData> assetDatas)
{
return new ProjectData
{
updateDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"),
sceneStartSetting = CreateSceneStartSettingData(),
assetDatas = assetDatas
};
}
private SceneStartSetting CreateSceneStartSettingData()
{
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
var sceneStartSetting = new SceneStartSetting();
sceneStartSetting.appSetting = canvas_Popup.panel_appsetting.GetAppSetting();
sceneStartSetting.apiSetting = canvas_Popup.panel_apisetting.GetAPISetting();
sceneStartSetting.mqttSetting = canvas_Popup.panel_mqttsetting.GetMQTTSetting();
sceneStartSetting.factorySetting = canvas_Popup.panel_3dfactorysetting.GetDynamic3DModelSetting();
return sceneStartSetting;
}
private string GetSaveFilePath()
{
var data = StandaloneFileBrowser.SaveFilePanel("SaveProject", "", curProjectName, ".ocs");
return data.Name;
}
}
}

View File

@@ -1,78 +0,0 @@
using UnityEngine;
using System;
using XED.UI;
using System.IO;
using Newtonsoft.Json;
using XED;
namespace Studio.Manage
{
[Serializable]
public class SceneStartSetting
{
public AppSetting appSetting;
public APISetting apiSetting;
public MQTTSetting mqttSetting;
public SaveModelDatas saveModelDatas;
}
public class SaveSceneSettingManager : Manager
{
public SceneStartSetting sceneStartSetting;
public Func<AppSetting> onGetAppSetting;
public Func<APISetting> onGetAPISetting;
public Func<MQTTSetting> onGetMQTTSetting;
public Func<SaveModelDatas> onGetSaveModelDatas;
public Action<AppSetting> onAppSetting;
public Action<APISetting> onAPISetting;
public Action<MQTTSetting> onMQTTSetting;
public Action<SaveModelDatas> onSaveModelDatas;
public override void Init()
{
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
onGetAppSetting += canvas_Popup.panel_appsetting.GetAppSetting;
onGetAPISetting += canvas_Popup.panel_apisetting.GetAPISetting;
onGetMQTTSetting += canvas_Popup.panel_mqttsetting.GetMQTTSetting;
onGetSaveModelDatas += canvas_Popup.panel_3dfactorysetting.Get3DFactorySetting;
onAppSetting += canvas_Popup.panel_appsetting.SetAppSetting;
onAPISetting += canvas_Popup.panel_apisetting.SetAPISetting;
onMQTTSetting += canvas_Popup.panel_mqttsetting.SetMQTTSetting;
onSaveModelDatas += canvas_Popup.panel_3dfactorysetting.Set3DFactorySetting;
}
public void SaveSceneSettingData()
{
var sceneStartSetting = new SceneStartSetting();
sceneStartSetting.appSetting = onGetAppSetting?.Invoke();
sceneStartSetting.apiSetting = onGetAPISetting?.Invoke();
sceneStartSetting.mqttSetting = onGetMQTTSetting?.Invoke();
sceneStartSetting.saveModelDatas = onGetSaveModelDatas?.Invoke();
string json = JsonConvert.SerializeObject(sceneStartSetting);
string path = Path.Combine(Application.persistentDataPath, "SceneStartSetting.json");
File.WriteAllText(path, json);
}
public void LoadSceneSettingData()
{
string path = Path.Combine(Application.persistentDataPath, "SceneStartSetting.json");
if (File.Exists(path))
{
string json = File.ReadAllText(path);
var loadedSetting = JsonConvert.DeserializeObject<SceneStartSetting>(json);
onAppSetting?.Invoke(loadedSetting.appSetting);
onAPISetting?.Invoke(loadedSetting.apiSetting);
onMQTTSetting?.Invoke(loadedSetting.mqttSetting);
onSaveModelDatas?.Invoke(loadedSetting.saveModelDatas);
}
else
{
Debug.LogWarning("JSON file not found: " + path);
}
}
}
}

View File

@@ -1,2 +0,0 @@
fileFormatVersion: 2
guid: 86a4d384c48c11d45b1693b5384189f4

View File

@@ -8,11 +8,24 @@ using XRLib.UI;
using XED;
using XED.UI;
using Studio.AssetTool;
using Studio.Command;
namespace Studio
{
public class Canvas_Popup : CanvasBase, ISingle
{
public Panel_QuickStart panel_quickstart;
public Panel_NewProjectInfo panel_newprojectinfo;
public Panel_OpenProjectInfo panel_openprojectinfo;
public Panel_StartSetting panel_startsetting;
public Panel_AppSetting panel_appsetting;
public Panel_AuthSetting panel_authsetting;
public Panel_APISetting panel_apisetting;
public Panel_MQTTSetting panel_mqttsetting;
public Panel_3DFactorySetting panel_3dfactorysetting;
public Panel_DynamicObjectUISetting panel_dynamicobjectuisetting;
public Panel_AccessibilitySettings panel_accessibilitysettings;
public Panel_ColorPicker panel_colorpicker;
public Panel_Hierarchy panel_hierarchy;
@@ -28,17 +41,7 @@ namespace Studio
public Panel_AssetEdit panel_assetedit;
public Panel_Thumbnail panel_thumbnail;
public Panel_ObjectDistance panel_objectdistance;
public Panel_StartSetting panel_startsetting;
public Panel_AppSetting panel_appsetting;
public Panel_AuthSetting panel_authsetting;
public Panel_APISetting panel_apisetting;
public Panel_MQTTSetting panel_mqttsetting;
public Panel_3DFactorySetting panel_3dfactorysetting;
public Panel_DynamicObjectUISetting panel_dynamicobjectuisetting;
public Panel_Authentication panel_authentication;
public Panel_QuickStart panel_quickstart;
public Panel_NewProjectInfo panel_newprojectinfo;
public Panel_OpenProjectInfo panel_openprojectinfo;
public Panel_APIConnectModal panel_apiconnectmodal;
public Panel_MQTTConnectModal panel_mqttconnectmodal;
public Panel_DataFilterSetting panel_datafiltersetting;
@@ -46,6 +49,11 @@ namespace Studio
public Panel_LoggingModal panel_loggingmodal;
public Panel_ExitChecker panel_exitchecker;
public Panel_DataConnectModal panel_dataconnectmodal;
public Panel_AlarmConnectModal panel_alarmconnectmodal;
public Panel_DynamicObjectInfo panel_dynamicobjectinfo;
public override void AfterAwake()
{
GetComponent<Canvas>().sortingOrder = 1;
@@ -67,10 +75,11 @@ namespace Studio
canvasHandler = new PopupCanvasHandler(this);
var saveSceneSettingManager = ManagerHub.instance.Get<SaveSceneSettingManager>();
var dataManager = FindAnyObjectByType<ConnectDataManager>();
var quitManager = FindAnyObjectByType<QuitManager>();
panel_newprojectinfo.onClickCreate += () => CommandInvoker.instance.Invoke(new NewProjectCommand());
panel_apiconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_apiconnectmodal.onSaveAPIData += dataManager.SetAPIData;
@@ -80,12 +89,24 @@ namespace Studio
dataManager.mqttData += panel_datafiltersetting.SetLoadMQTTDataList;
dataManager.apiData += panel_datafiltersetting.SetLoadAPIDataList;
panel_startsetting.onClickSaveButton += saveSceneSettingManager.SaveSceneSettingData;
panel_startsetting.onClickLoadButton += saveSceneSettingManager.LoadSceneSettingData;
panel_exitchecker.onSaveAndExit += quitManager.OnConfirmQuit;
panel_exitchecker.onExit += quitManager.OnConfirmQuit;
panel_exitchecker.onCancel += quitManager.OnCancelQuit;
//panel_dataconnectmodal.onSaveConnectedData += dataManager.SaveData;
//panel_alarmconnectmodal.onSaveConnectAlarmData += dataManager.SaveAlarmData;
//panel_dynamicobjectinfo.onRetouchData += dataManager.LoadData;
//panel_dynamicobjectinfo.onDeleteData += dataManager.RemoveData;
//panel_dynamicobjectinfo.onRetouchAlarm += dataManager.LoadAlarmData;
//panel_dynamicobjectinfo.onDeleteAlarm += dataManager.RemoveAlarmData;
//dataManager.onConnectData += panel_dynamicobjectinfo.OnConnectData;
//dataManager.onLoadData += panel_dataconnectmodal.SetLoadSaveData;
//dataManager.onConnectAlarm += panel_dynamicobjectinfo.OnConnectAlarm;
//dataManager.onLoadAlarm += panel_alarmconnectmodal.LoadData;
}
void SetPanelAsLastSibling(UIBase panel)

View File

@@ -30,7 +30,7 @@ namespace Studio.UI
statusPanel.SetMode(ModePanel.ProgramMode.ObjectLayout);
panel_studiotopbar.onClickAssetLibraryWindow += fbxFileManager.LoadLocalData;
panel_studiotopbar.onClickSaveProject += () => CommandInvoker.instance.Invoke(new SaveProjectCommand());
}
}
}

View File

@@ -4,16 +4,10 @@ using TMPro;
using UnityEngine.UI;
using System.Collections.Generic;
using System;
using Studio.Util;
namespace XED
{
[Serializable]
public class APIConnection
{
public string domain;
public string port;
public List<URL> urls = new List<URL>();
}
public class UI_APIConnection : UIBase
{
private TMP_InputField InputField_Domain;

View File

@@ -3,6 +3,7 @@ using XRLib.UI;
using TMPro;
using System;
using System.Collections.Generic;
using Studio.Util;
namespace Studio
{
@@ -20,7 +21,7 @@ namespace Studio
private TMP_Dropdown Dropdown_DataDisplayStyle;
private string dataValue;
public void SetData(Datum datum)
public void SetData(Dynamic3DModelUIData datum)
{
Text_DataName.SetText(datum.dataName);
SetDataDisplayStyleDropdown(datum.dataType);
@@ -40,15 +41,15 @@ namespace Studio
Dropdown_DataDisplayStyle.AddOptions(options);
Dropdown_DataDisplayStyle.value = options.IndexOf(dataType);
}
public Datum GetDatum()
public Dynamic3DModelUIData GetDynamic3DModelUIData()
{
var datum = new Datum();
var dynamic3DModelUIData = new Dynamic3DModelUIData();
datum.dataName = Text_DataName.text;
datum.dataType = Dropdown_DataDisplayStyle.options[Dropdown_DataDisplayStyle.value].text;
datum.dataValue = dataValue;
dynamic3DModelUIData.dataName = Text_DataName.text;
dynamic3DModelUIData.dataType = Dropdown_DataDisplayStyle.options[Dropdown_DataDisplayStyle.value].text;
dynamic3DModelUIData.dataValue = dataValue;
return datum;
return dynamic3DModelUIData;
}
}
}

View File

@@ -5,6 +5,7 @@ using UnityEngine.UI;
using Newtonsoft.Json;
using System.Collections.Generic;
using System;
using Studio.Util;
namespace Studio
{
@@ -17,7 +18,7 @@ namespace Studio
private Button Button_RemoveItem;
public DynamicObjectDatas dynamicObjectDatas;
public DataList selectDynamicObjectData;
public Dynamic3DModelUISetting selectDynamicObjectData;
public ModelList modelData;
public string selectedModel;
@@ -44,7 +45,7 @@ namespace Studio
options.Add("Select URL");
foreach(var dynamicObjectData in dynamicObjectDatas.dataList)
foreach(var dynamicObjectData in dynamicObjectDatas.dynamic3DModelUISetting)
{
options.Add(dynamicObjectData.name);
}
@@ -56,7 +57,7 @@ namespace Studio
if (index - 1 < 0)
return;
selectDynamicObjectData = dynamicObjectDatas.dataList[index - 1];
selectDynamicObjectData = dynamicObjectDatas.dynamic3DModelUISetting[index - 1];
}
private void SetModelDropdown()
{
@@ -81,7 +82,7 @@ namespace Studio
if (Dropdown_Data.value - 1 >= 0)
{
selectDynamicObjectData = dynamicObjectDatas.dataList[Dropdown_Data.value - 1];
selectDynamicObjectData = dynamicObjectDatas.dynamic3DModelUISetting[Dropdown_Data.value - 1];
}
}
@@ -100,21 +101,21 @@ namespace Studio
{
onRemoveItem?.Invoke(this);
}
public ModelData GetModelData()
public Dynamic3DModelConnection GetDynamic3DModelConnection()
{
var modelData = new ModelData();
modelData.dataName = Dropdown_Data.options[Dropdown_Data.value].text;
modelData.modelName = Dropdown_Model.options[Dropdown_Model.value].text;
modelData.modelData = selectDynamicObjectData;
var dynamic3DModelConnection = new Dynamic3DModelConnection();
dynamic3DModelConnection.dataName = Dropdown_Data.options[Dropdown_Data.value].text;
dynamic3DModelConnection.modelName = Dropdown_Model.options[Dropdown_Model.value].text;
dynamic3DModelConnection.modelData = selectDynamicObjectData;
return modelData;
return dynamic3DModelConnection;
}
public void SetModelData(ModelData modelData)
public void SetModelData(Dynamic3DModelConnection dynamic3DModelConnection)
{
Dropdown_Data.value = Dropdown_Data.options.FindIndex(option => option.text == modelData.dataName);
Dropdown_Model.value = Dropdown_Model.options.FindIndex(option => option.text == modelData.modelName);
Dropdown_Data.value = Dropdown_Data.options.FindIndex(option => option.text == dynamic3DModelConnection.dataName);
Dropdown_Model.value = Dropdown_Model.options.FindIndex(option => option.text == dynamic3DModelConnection.modelName);
selectDynamicObjectData = modelData.modelData;
selectDynamicObjectData = dynamic3DModelConnection.modelData;
}
}
}

View File

@@ -4,6 +4,7 @@ using XRLib.UI;
using UnityEngine.UI;
using TMPro;
using System;
using Studio.Util;
namespace Studio
{
@@ -22,17 +23,17 @@ namespace Studio
private UI_DynamicDataStyleItem prf_DynamicDataStyleItem;
private List<UI_DynamicDataStyleItem> dynamicDataStyleItems = new List<UI_DynamicDataStyleItem>();
public List<DataList> dynamicObjectDatas = new List<DataList>();
public List<Dynamic3DModelUISetting> dynamicObjectDatas = new List<Dynamic3DModelUISetting>();
public void SetData(DataList dynamicObjectDatas, UI_DynamicDataStyleItem dynamicDataStyleItem)
public void SetData(Dynamic3DModelUISetting dynamicObjectDatas, UI_DynamicDataStyleItem dynamicDataStyleItem)
{
Text_ClassName.SetText(dynamicObjectDatas.name);
prf_DynamicDataStyleItem = dynamicDataStyleItem;
SetUIDesignStyleDropdown(dynamicObjectDatas);
SetDataItems(dynamicObjectDatas.datas);
SetDataItems(dynamicObjectDatas.dynamic3DModelUIData);
}
private void SetUIDesignStyleDropdown(DataList dataList)
private void SetUIDesignStyleDropdown(Dynamic3DModelUISetting dataList)
{
Dropdown_UIDesignStyle.ClearOptions();
var types = Enum.GetNames(typeof(UIDesignStyle));
@@ -51,7 +52,7 @@ namespace Studio
Dropdown_UIDesignStyle.value = options.IndexOf(dataList.dashboardStyle);
}
}
private void SetDataItems(List<Datum> datas)
private void SetDataItems(List<Dynamic3DModelUIData> datas)
{
foreach(var item in dynamicDataStyleItems)
{
@@ -66,17 +67,17 @@ namespace Studio
dynamicDataStyleItems.Add(item);
}
}
public DataList GetDataList()
public Dynamic3DModelUISetting GetDynamic3DModelUISetting()
{
DataList dataList = new DataList();
dataList.name = Text_ClassName.text;
dataList.dashboardStyle = Dropdown_UIDesignStyle.options[Dropdown_UIDesignStyle.value].text;
var dynamic3DModelUISetting = new Dynamic3DModelUISetting();
dynamic3DModelUISetting.name = Text_ClassName.text;
dynamic3DModelUISetting.dashboardStyle = Dropdown_UIDesignStyle.options[Dropdown_UIDesignStyle.value].text;
foreach (var dynamicDataStyleItem in dynamicDataStyleItems)
{
dataList.datas.Add(dynamicDataStyleItem.GetDatum());
dynamic3DModelUISetting.dynamic3DModelUIData.Add(dynamicDataStyleItem.GetDynamic3DModelUIData());
}
return dataList;
return dynamic3DModelUISetting;
}
}
}

View File

@@ -3,14 +3,10 @@ using TMPro;
using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
using Studio.Util;
namespace XED
{
[Serializable]
public class Topic
{
public string topic;
}
public class UI_InputTopicItem : UIBase
{
private TMP_InputField InputField_Topic;

View File

@@ -3,14 +3,10 @@ using XRLib.UI;
using UnityEngine.UI;
using TMPro;
using System;
using Studio.Util;
namespace XED
{
[Serializable]
public class URL
{
public string url;
}
public class UI_InputURLItem : UIBase
{
private TMP_InputField InputField_URL;

View File

@@ -4,17 +4,10 @@ using TMPro;
using UnityEngine.UI;
using System.Collections.Generic;
using System;
using Studio.Util;
namespace XED
{
[Serializable]
public class MQTTConnection
{
public string domain;
public string port;
public List<Topic> topics = new List<Topic>();
}
public class UI_MQTTConnection : UIBase
{
private TMP_InputField InputField_Domain;

View File

@@ -6,6 +6,7 @@ using System.Collections.Generic;
using Newtonsoft.Json;
using System;
using XRLib;
using Studio.Util;
namespace Studio
{
@@ -24,7 +25,7 @@ namespace Studio
private ModelList modelList;
public Action<UI_DynamicObjectItem> onUISetting;
public SaveModelDatas saveModelDatas;
public Dynamic3DModelSetting saveModelDatas;
public void Active(bool isActive)
{
@@ -75,16 +76,16 @@ namespace Studio
dynamicObjectItems.Remove(item);
Destroy(item.gameObject);
}
public SaveModelDatas Get3DFactorySetting()
public Dynamic3DModelSetting GetDynamic3DModelSetting()
{
var saveModelDatas = new SaveModelDatas();
var dynamic3DModelSetting = new Dynamic3DModelSetting();
foreach(var modelData in dynamicObjectItems)
{
saveModelDatas.modelDatas.Add(modelData.GetModelData());
dynamic3DModelSetting.modelDatas.Add(modelData.GetDynamic3DModelConnection());
}
return saveModelDatas;
return dynamic3DModelSetting;
}
public void Set3DFactorySetting(SaveModelDatas saveModelDatas)
public void SetDynamic3DModelSetting(Dynamic3DModelSetting saveModelDatas)
{
foreach(var modelData in saveModelDatas.modelDatas)
{

View File

@@ -3,14 +3,11 @@ using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
using System;
using Studio.Util;
namespace XED
{
[Serializable]
public class APISetting
{
public List<APIConnection> apiConnections = new List<APIConnection>();
}
public class Panel_APISetting : PanelBase
{
private RectTransform Content;

View File

@@ -6,21 +6,10 @@ using XRLib.UI;
using System.IO;
using TMPro;
using TriLibCore.SFB;
using Studio.Util;
namespace XED.UI
{
[Serializable]
public class AppSetting
{
public string splashImageByte;
public string animationStyle;
public string progressBarStyle;
public bool autoStart;
public string defaultLanauge;
public string languagePackPath;
}
public enum AnimationStyle
{
Static, FadeIn, FadeOut
@@ -107,7 +96,18 @@ namespace XED.UI
}
private void OnClickLanguagePackButton()
{
StandaloneFileBrowser.OpenFilePanelAsync("언어 팩 열기", "", "", false, LoadLanguagePack);
var packItem = StandaloneFileBrowser.OpenFilePanel("언어 팩 열기", "", "", false);
if (packItem != null && packItem.Count > 0)
{
var item = packItem[0];
if (string.IsNullOrEmpty(item.Name))
{
return;
}
InputField_LanguagePack.text = packItem[0].Name;
}
}
void LoadImage(IList<ItemWithStream> items)
@@ -146,38 +146,15 @@ namespace XED.UI
Debug.LogWarning("이미지를 선택하지 않았습니다.");
}
}
private void LoadLanguagePack(IList<ItemWithStream> items)
{
if (items != null && items.Count > 0)
{
var item = items[0];
if (string.IsNullOrEmpty(item.Name))
{
return;
}
InputField_LanguagePack.text = item.Name;
using (var memoryStream = new MemoryStream())
{
using (var inputStream = item.OpenStream())
{
inputStream.CopyTo(memoryStream);
}
}
}
else
{
Debug.LogWarning("이미지를 선택하지 않았습니다.");
}
}
public AppSetting GetAppSetting()
{
var appSetting = new AppSetting();
var bytes = Image_Selected.sprite.texture.EncodeToPNG();
appSetting.splashImageByte = Convert.ToBase64String(bytes);
if (Image_Selected.sprite != null)
{
var bytes = Image_Selected.sprite.texture.EncodeToPNG();
appSetting.splashImageByte = Convert.ToBase64String(bytes);
}
appSetting.animationStyle = Dropdown_AnimationStyle.options[Dropdown_AnimationStyle.value].text;
appSetting.progressBarStyle = Dropdown_ProgressBarStyle.options[Dropdown_ProgressBarStyle.value].text;
appSetting.autoStart = Toggle_AutoStart.isOn;

View File

@@ -106,7 +106,7 @@ namespace Studio
if (dynamicObjectUISettingItem == null)
return;
var dynamicObjectUIData = dynamicObjectUISettingItem.GetDataList();
var dynamicObjectUIData = dynamicObjectUISettingItem.GetDynamic3DModelUISetting();
selectedDynamicObjectItem.selectDynamicObjectData = dynamicObjectUIData;
onSaveDynamicObjectUIData?.Invoke();
}

View File

@@ -3,14 +3,10 @@ using UnityEngine;
using UnityEngine.UI;
using XRLib.UI;
using System;
using Studio.Util;
namespace XED
{
[Serializable]
public class MQTTSetting
{
public List<MQTTConnection> mqttConnections = new List<MQTTConnection>();
}
public class Panel_MQTTSetting : PanelBase
{
private RectTransform Content;

View File

@@ -1,3 +1,4 @@
using Studio.Util;
using System;
using System.Collections.Generic;
using UnityEngine;
@@ -121,21 +122,7 @@ namespace Studio
[Serializable]
public class DynamicObjectDatas
{
public List<DataList> dataList = new List<DataList>();
}
[Serializable]
public class DataList
{
public string name;
public string dashboardStyle;
public List<Datum> datas = new List<Datum>();
}
[Serializable]
public class Datum
{
public string dataName;
public string dataType;
public string dataValue;
public List<Dynamic3DModelUISetting> dynamic3DModelUISetting = new List<Dynamic3DModelUISetting>();
}
[Serializable]
@@ -148,19 +135,4 @@ namespace Studio
{
public string modelName;
}
[Serializable]
public class SaveModelDatas
{
public List<ModelData> modelDatas = new List<ModelData>();
}
[Serializable]
public class ModelData
{
public string dataName;
public string modelName;
public DataList modelData;
}
}