Files
Studio/Assets/Scripts/Studio/UI/Canvas/Canvas_Popup.cs
2025-05-26 20:21:53 +09:00

116 lines
5.3 KiB
C#

using Studio.AssetTool;
using Studio.Command;
using Studio.Manage;
using Studio.UI;
using UnityEngine;
using XRLib;
using XRLib.UI;
namespace Studio
{
public class Canvas_Popup : CanvasBase, ISingle
{
public Panel_Start panel_start;
public Panel_NewProjectInfo panel_newprojectinfo;
public Panel_OpenProjectInfo panel_openprojectinfo;
public Panel_TopMenuNewProjectInfo panel_topmenunewprojectinfo;
public Panel_TopMenuOpenProjectInfo panel_topmenuopenprojectinfo;
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_AssetSetting panel_assetsetting;
public Panel_3DFactorySetting panel_3dfactorysetting;
public Panel_DynamicObjectUISetting panel_dynamicobjectuisetting;
public Panel_AssetManager panel_assetmanager;
public Panel_AccessibilitySettings panel_accessibilitysettings;
public Panel_ColorPicker panel_colorpicker;
public Panel_Hierarchy panel_hierarchy;
public Panel_AssetLibrary panel_assetlibrary;
public Panel_InterworkingDataList panel_interworkingdatalist;
public Panel_InterferedObjectList panel_interferedobjectlist;
public Panel_AssetProperties panel_assetproperties;
public Panel_PredefinedType panel_predefinedtype;
public Panel_DynamicObjectInfo panel_dynamicobjectinfo;
// public Panel_ObjectInfo panel_objectinfo;
public Panel_ObjectAlign panel_objectalign;
public Panel_Tooltip panel_tooltip;
public Panel_PropertyViewer panel_propertyviewer;
public Panel_AssetEdit panel_assetedit;
public Panel_Thumbnail panel_thumbnail;
public Panel_ObjectDistance panel_objectdistance;
public Panel_Authentication panel_authentication;
public Panel_APIConnectModal panel_apiconnectmodal;
public Panel_MQTTConnectModal panel_mqttconnectmodal;
public Panel_DataFilterSetting panel_datafiltersetting;
public Panel_MultilingualSettingModal panel_multilingualsettingmodal;
public Panel_LoggingModal panel_loggingmodal;
public Panel_ExitChecker panel_exitchecker;
public Panel_DataRepository panel_datarepository;
public Panel_DataConnectModal panel_dataconnectmodal;
public Panel_AlarmConnectModal panel_alarmconnectmodal;
internal Panel_MQTTTestResult panel_mqtttestresult;
private void Awake()
{
panel_datarepository = GetComponentInChildren<Panel_DataRepository>(true);
panel_datarepository.onEnableEvent += SetPanelAsLastSibling;
}
public override void AfterAwake()
{
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
panel_dynamicobjectinfo.onTransformChanged += renderObjectHandler.OnTransformChanged;
var raycaster = GameObject.FindAnyObjectByType<Raycaster>();
raycaster.onUIHoverEvent += panel_tooltip.ActivateTooltip;
raycaster.onUIHoverExitEvent += panel_tooltip.DeactivateTooltip;
foreach (var panel in GetComponentsInChildren<PanelBase>(true))
{
panel.onEnableEvent += SetPanelAsLastSibling;
}
var fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
panel_assetproperties.onOpen += fbxFileManager.GetCustomAssetData;
panel_thumbnail.onOpen += fbxFileManager.GetCustomAssetData;
canvasHandler = new PopupCanvasHandler(this);
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_topmenunewprojectinfo.onClickCreate += () => CommandInvoker.instance.Invoke(new TopMenuNewProjectCommand());
panel_topmenuopenprojectinfo.onClickOpen += () => CommandInvoker.instance.Invoke(new TopMenuOpenProjectCommand());
panel_apiconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_apiconnectmodal.onSaveAPIData += dataManager.SetAPIData;
panel_mqttconnectmodal.onClickFilterButton += dataManager.SetFilterData;
panel_mqttconnectmodal.onSaveMQTTData += dataManager.SetMQTTData;
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;
}
void SetPanelAsLastSibling(UIBase panel)
{
panel.gameObject.transform.SetAsLastSibling();
}
}
}