Files
Studio/Assets/Scripts/Studio/UI/Canvas/Canvas_Popup.cs
2025-05-29 00:59:12 +09:00

113 lines
5.1 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_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_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_ObjectDistance panel_objectdistance;
public Panel_APIConnectModal panel_apiconnectmodal;
public Panel_DataFilterSetting panel_datafiltersetting;
public Panel_MultilingualSettingModal panel_multilingualsettingmodal;
public Panel_LoggingModal panel_loggingmodal;
public Panel_ExitChecker panel_exitchecker;
public Panel_SaveAndNewChecker panel_saveandnewchecker;
public Panel_SaveAndOpenChecker panel_saveandopenchecker;
public Panel_DataRepository panel_datarepository;
public Panel_ObjectDetails panel_objectdetails;
public Panel_Toolbar panel_toolbar;
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 raycaster = GameObject.FindAnyObjectByType<Raycaster>();
var fbxFileManager = ManagerHub.instance.Get<FBXFileManager>();
var renderObjectHandler = ManagerHub.instance.Get<RenderObjectHandler>();
var childPanels = GetComponentsInChildren<PanelBase>(true);
panel_dynamicobjectinfo.onTransformChanged += renderObjectHandler.OnTransformChanged;
raycaster.onUIHoverEvent += panel_tooltip.ActivateTooltip;
raycaster.onUIHoverExitEvent += panel_tooltip.DeactivateTooltip;
foreach (var panel in childPanels)
{
panel.onEnableEvent += SetPanelAsLastSibling;
}
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_assetsetting.onSelectedURL += assetManager.LoadAssetSettingFBXDirectorys;
panel_saveandnewchecker.onClickSaveAndNew += () => CommandInvoker.instance.Invoke(new SaveAndNewProjectCommand());
panel_saveandopenchecker.onClickSaveAndOpen += () => CommandInvoker.instance.Invoke(new SaveAndOpenProjectCommand());
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;
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();
}
}
}