UI 레이아웃 수정

This commit is contained in:
정영민
2025-05-21 18:32:04 +09:00
parent 7eca16e598
commit f4c5a0d38a
25 changed files with 10011 additions and 8264 deletions

View File

@@ -1,9 +1,13 @@
using Studio.UI;
using UnityEngine;
namespace Studio.Manage
{
public class PopupCanvasHandler : CanvasEventHandler
{
public PopupCanvasHandler(Canvas_Popup canvas_popup)
{
var canvas_static = EventConnector.instance.GetCanvas<Canvas_Static>();
canvas_popup.panel_assetlibrary.scrollView.onSelect.AddListener(canvas_popup.panel_assetproperties.Open);
canvas_popup.panel_assetproperties.onClickPreview += canvas_popup.panel_predefinedtype.Open;
canvas_popup.panel_thumbnail.onGetPosition += canvas_popup.panel_assetlibrary.GetPositionX;
@@ -13,16 +17,16 @@ namespace Studio.Manage
canvas_popup.panel_quickstart.onClickOpenProject += canvas_popup.panel_newprojectinfo.Close;
canvas_popup.panel_quickstart.onClickOpenProject += canvas_popup.panel_openprojectinfo.Open;
canvas_popup.panel_newprojectinfo.onClickCreate += canvas_popup.panel_scenetab.Open;
canvas_popup.panel_newprojectinfo.onClickCreate += () => canvas_static.GetComponent<Canvas>().sortingOrder = 2;
canvas_popup.panel_newprojectinfo.onClickCreate += canvas_static.panel_scenetab.Init;
canvas_popup.panel_newprojectinfo.onClickCreate += canvas_popup.panel_quickstart.Close;
canvas_popup.panel_newprojectinfo.onClickCreate += canvas_popup.panel_newprojectinfo.Close;
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_popup.panel_scenetab.Open;
canvas_popup.panel_openprojectinfo.onClickOpen += () => canvas_static.GetComponent<Canvas>().sortingOrder = 2;
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_static.panel_scenetab.Init;
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_popup.panel_quickstart.Close;
canvas_popup.panel_openprojectinfo.onClickOpen += canvas_popup.panel_openprojectinfo.Close;
canvas_popup.panel_scenetab.onSceneSettingTab += canvas_popup.panel_startsetting.Active;
canvas_popup.panel_startsetting.onClickAppSetting += canvas_popup.panel_appsetting.Active;
canvas_popup.panel_startsetting.onClickAuthSetting += canvas_popup.panel_authsetting.Active;
canvas_popup.panel_startsetting.onClickAPISetting += canvas_popup.panel_apisetting.Active;

View File

@@ -10,17 +10,20 @@ namespace Studio.Manage
public StaticCanvasHandler(Canvas_Static canvas_static)
{
var canvas_Popup = EventConnector.instance.GetCanvas<Canvas_Popup>();
GameObject componentWindow = canvas_Popup.panel_hierarchy.gameObject;
canvas_static.panel_scenetab.onSceneSettingTab += canvas_Popup.panel_startsetting.Active;
GameObject hierarchyWindow = canvas_Popup.panel_hierarchy.gameObject;
GameObject interferedobjectlistWindow = canvas_Popup.panel_interferedobjectlist.gameObject;
GameObject assetWindow = canvas_Popup.panel_assetlibrary.gameObject;
GameObject assetLibraryWindow = canvas_Popup.panel_assetlibrary.gameObject;
canvas_static.panel_shortcuts.onClickOpenAssetWindow += (() => assetWindow.SetActive(!assetWindow.activeSelf));
canvas_static.panel_shortcuts.onClickOpenComponentWindow += (() => componentWindow.SetActive(!componentWindow.activeSelf));
canvas_static.panel_topbar.onClickAssetWindow += (() => assetWindow.SetActive(!assetWindow.activeSelf));
canvas_static.panel_topbar.onClickComponentWindow += (() => componentWindow.SetActive(!componentWindow.activeSelf));
canvas_static.panel_topbar.onClickInterferedListWindow += (() => interferedobjectlistWindow.SetActive(!interferedobjectlistWindow.activeSelf));
canvas_static.panel_studiotopbar.onClickAssetLibraryWindow += (() => assetLibraryWindow.SetActive(!assetLibraryWindow.activeSelf));
canvas_static.panel_studiotopbar.onClickHierarchyWindow += (() => hierarchyWindow.SetActive(!hierarchyWindow.activeSelf));
//canvas_static.panel_shortcuts.onClickOpenAssetWindow += (() => assetWindow.SetActive(!assetWindow.activeSelf));
//canvas_static.panel_shortcuts.onClickOpenComponentWindow += (() => componentWindow.SetActive(!componentWindow.activeSelf));
//canvas_static.panel_modecontrol.onClickObjectMode += () => statusPanel.SetMode(ModePanel.ProgramMode.ObjectLayout);
//canvas_static.panel_studiotopbar.onClickComponentWindow += (() => componentWindow.SetActive(!componentWindow.activeSelf));
}
}
}

View File

@@ -27,7 +27,6 @@ namespace Studio
public Panel_AssetEdit panel_assetedit;
public Panel_Thumbnail panel_thumbnail;
public Panel_ObjectDistance panel_objectdistance;
public Panel_SceneTab panel_scenetab;
public Panel_StartSetting panel_startsetting;
public Panel_AppSetting panel_appsetting;
public Panel_AuthSetting panel_authsetting;

View File

@@ -4,14 +4,15 @@ using UnityEngine;
using Studio.Manage;
using Studio.Util;
using Studio.Command;
using XED;
namespace Studio.UI
{
public class Canvas_Static : CanvasBase
{
public Panel_ShortCuts panel_shortcuts;
public Panel_TopBar panel_topbar;
public Panel_StudioTopBar panel_studiotopbar;
public Panel_Toolbar panel_toolbar;
public Panel_SceneTab panel_scenetab;
private void Awake()
{
@@ -27,21 +28,23 @@ namespace Studio.UI
statusPanel.SetMode(ModePanel.ProgramMode.ObjectLayout);
panel_shortcuts.onClickUndo += CommandInvoker.instance.Undo;
panel_shortcuts.onClickRedo += CommandInvoker.instance.Redo;
panel_shortcuts.onclickSave += () => CommandInvoker.instance.Invoke(new SaveProjectCommand());
panel_topbar.onClickSaveProject += () => CommandInvoker.instance.Invoke(new SaveProjectCommand());
panel_topbar.onClickLoadProject += () => CommandInvoker.instance.Invoke(new LoadProjectCommand());
panel_topbar.onClickNewProject += () => CommandInvoker.instance.Invoke(new NewProjectCommand());
//panel_topbar.onClickLoadAssets += fbxFileManager.LoadLocalFBXDirectory;
panel_topbar.onClickAssetWindow += fbxFileManager.LoadLocalData;
panel_toolbar.onClickMove += () => CommandInvoker.instance.Invoke(new ActivateMoveGizmoCommand());
panel_toolbar.onClickExpand += () => CommandInvoker.instance.Invoke(new ActivateScaleGizmoCommand());
panel_toolbar.onClickRotate += () => CommandInvoker.instance.Invoke(new ActivateRotateGizmoCommand());
panel_toolbar.onClickRemove += () => CommandInvoker.instance.Invoke(new RemoveSelectObjectCommand());
panel_toolbar.onClickCopy += () => CommandInvoker.instance.Invoke(new CopyObjectCommand());
panel_studiotopbar.onClickAssetLibraryWindow += fbxFileManager.LoadLocalData;
//panel_shortcuts.onClickUndo += CommandInvoker.instance.Undo;
//panel_shortcuts.onClickRedo += CommandInvoker.instance.Redo;
//panel_shortcuts.onclickSave += () => CommandInvoker.instance.Invoke(new SaveProjectCommand());
//panel_topbar.onClickSaveProject += () => CommandInvoker.instance.Invoke(new SaveProjectCommand());
//panel_topbar.onClickLoadProject += () => CommandInvoker.instance.Invoke(new LoadProjectCommand());
//panel_topbar.onClickNewProject += () => CommandInvoker.instance.Invoke(new NewProjectCommand());
//panel_studiotopbar.onClickLoadAssets += fbxFileManager.LoadLocalFBXDirectory;
}
}
}

View File

@@ -11,7 +11,7 @@ namespace Studio.UI
Image buttonImage;
[SerializeField] protected GameObject dropdownScrollview;
[SerializeField] private UnityEvent onDeselect;
private float openTime = 0.1f;
private float openTime = 0.05f;
private float waitTime = 0.05f;
private Vector3 closeScale = new Vector3(1, 0, 1);
[SerializeField] bool isButtonImageToggle = false;

View File

@@ -14,6 +14,7 @@ namespace Studio
private Button Button_SelectModel;
private TMP_Dropdown Dropdown_Model;
private Button Button_UISetting;
private Button Button_RemoveItem;
public DynamicObjectDatas dynamicObjectDatas;
public DataList selectDynamicObjectData;
@@ -22,6 +23,7 @@ namespace Studio
public string selectedModel;
public Action<UI_DynamicObjectItem> onUISetting;
public Action<UI_DynamicObjectItem> onRemoveItem;
public void SetData(DynamicObjectDatas dynamicObjectDatas, ModelList modelList)
{
@@ -33,6 +35,7 @@ namespace Studio
Button_SelectModel.onClick.AddListener(OnClickSelectModelButton);
Button_UISetting.onClick.AddListener(OnClickUISettingButton);
Button_RemoveItem.onClick.AddListener(OnClickRemoveItemButton);
}
private void SetDataDropdown()
{
@@ -74,8 +77,13 @@ namespace Studio
if (index - 1 < 0)
return;
selectDynamicObjectData = dynamicObjectDatas.dataList[Dropdown_Data.value - 1];
selectedModel = modelData.modelList[index - 1].modelName;
if (Dropdown_Data.value - 1 >= 0)
{
selectDynamicObjectData = dynamicObjectDatas.dataList[Dropdown_Data.value - 1];
}
}
private void OnClickSelectModelButton()
{
@@ -83,11 +91,15 @@ namespace Studio
}
private void OnClickUISettingButton()
{
if (selectDynamicObjectData != null && selectedModel != string.Empty)
if (selectDynamicObjectData.name != string.Empty && selectedModel != string.Empty)
{
onUISetting?.Invoke(this);
}
}
private void OnClickRemoveItemButton()
{
onRemoveItem?.Invoke(this);
}
public ModelData GetModelData()
{
var modelData = new ModelData();

View File

@@ -50,6 +50,7 @@ namespace Studio
{
var item = Instantiate(prf_dynamicObjectItem, DynamicObjectItemContent);
item.onUISetting += OnUISetting;
item.onRemoveItem += OnRemoveItem;
item.SetData(dynamicObjectDatas, modelList);
dynamicObjectItems.Add(item);
@@ -69,6 +70,11 @@ namespace Studio
{
onUISetting?.Invoke(rectTransform);
}
private void OnRemoveItem(UI_DynamicObjectItem item)
{
dynamicObjectItems.Remove(item);
Destroy(item.gameObject);
}
public SaveModelDatas Get3DFactorySetting()
{
var saveModelDatas = new SaveModelDatas();
@@ -84,6 +90,7 @@ namespace Studio
{
var item = Instantiate(prf_dynamicObjectItem, DynamicObjectItemContent);
item.onUISetting += OnUISetting;
item.onRemoveItem += OnRemoveItem;
item.SetData(dynamicObjectDatas, modelList);
item.SetModelData(modelData);
dynamicObjectItems.Add(item);

View File

@@ -20,11 +20,7 @@ namespace XED
public Action<bool> onSceneSettingTab;
public Action<bool> onSceneTab;
public void Open()
{
SetActive(true);
}
public override void AfterAwake()
public void Init()
{
prf_SceneTabButton = Resources.Load<UI_SceneTabButton>("Prefabs/UI/PRF_SceneTabButton");
toggleGroup = Content.GetComponent<ToggleGroup>();
@@ -33,6 +29,9 @@ namespace XED
Toggle_SceneStartSetting.onValueChanged.AddListener(OnSceneStartSettingValueChanged);
Button_AddSceneTab.onClick.AddListener(OnClickAddSceneTabButton);
sceneTabButtons.Clear();
Toggle_SceneStartSetting.isOn = true;
OnClickAddSceneTabButton();
}
private void OnSceneStartSettingValueChanged(bool isOn)
{

View File

@@ -11,8 +11,8 @@ namespace XED
public class Panel_StartSetting : PanelBase
{
private ToggleGroup TabToggles;
private Toggle selectedToggle;
private Toggle preSelectedToggle;
public Toggle selectedToggle;
public Toggle preSelectedToggle;
private Toggle Toggle_AppSetting;
private Toggle Toggle_AuthSetting;
@@ -38,16 +38,22 @@ namespace XED
{
SetActive(isOn);
if (preSelectedToggle != null)
{
preSelectedToggle.isOn = isOn;
}
if (selectedToggle != null)
if(isOn == false)
{
preSelectedToggle = selectedToggle;
selectedToggle.isOn = isOn;
}
else
{
if (preSelectedToggle == null)
{
Toggle_AppSetting.isOn = isOn;
}
else
{
preSelectedToggle.isOn = isOn;
}
}
}
public override void AfterAwake()
{