ComponentList > 표시 설정 바로가기 기능 개발
This commit is contained in:
@@ -8,7 +8,6 @@ using UVC.Data.Core;
|
|||||||
using UVC.Factory;
|
using UVC.Factory;
|
||||||
using UVC.Factory.Alarm;
|
using UVC.Factory.Alarm;
|
||||||
using UVC.Factory.Component;
|
using UVC.Factory.Component;
|
||||||
using UVC.UI.List.ComponentList;
|
|
||||||
using UVC.Factory.Modal.Settings;
|
using UVC.Factory.Modal.Settings;
|
||||||
using UVC.Factory.Playback;
|
using UVC.Factory.Playback;
|
||||||
using UVC.Log;
|
using UVC.Log;
|
||||||
@@ -108,7 +107,7 @@ namespace SampleProject
|
|||||||
|
|
||||||
private void SetupTopMenu()
|
private void SetupTopMenu()
|
||||||
{
|
{
|
||||||
if(topMenu == null)
|
if (topMenu == null)
|
||||||
{
|
{
|
||||||
Debug.LogError("TopMenuController is not assigned in SceneMain.");
|
Debug.LogError("TopMenuController is not assigned in SceneMain.");
|
||||||
return;
|
return;
|
||||||
@@ -167,7 +166,7 @@ namespace SampleProject
|
|||||||
|
|
||||||
private void SetupSideMenu()
|
private void SetupSideMenu()
|
||||||
{
|
{
|
||||||
if(sideMenu == null)
|
if (sideMenu == null)
|
||||||
{
|
{
|
||||||
Debug.LogError("SideMenuController is not assigned in SceneMain.");
|
Debug.LogError("SideMenuController is not assigned in SceneMain.");
|
||||||
return;
|
return;
|
||||||
|
|||||||
@@ -8,14 +8,31 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
public class AlarmSettingTabContent : MonoBehaviour, ITabContent
|
public class AlarmSettingTabContent : MonoBehaviour, ITabContent
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
public void SetContentData(object? data)
|
public void SetContentData(object? data)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 전환 시 데이터가 있는 경우 전달 되는 데이터. SetContentData 이후 호출 됨
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
|
public void UpdateContentData(object? data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 닫힐 때 실행되는 로직을 처리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>비동기 닫기 작업을 나타내는 <see cref="UniTask"/>입니다.</returns>
|
||||||
public UniTask OnCloseAsync()
|
public UniTask OnCloseAsync()
|
||||||
{
|
{
|
||||||
return UniTask.CompletedTask;
|
return UniTask.CompletedTask;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,12 +77,17 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
Debug.Log($"OnOrderChanged: {data.Id} from {oldIndex} to {newIndex}");
|
Debug.Log($"OnOrderChanged: {data.Id} from {oldIndex} to {newIndex}");
|
||||||
UpdateData();
|
UpdateData();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void OnChangedItemData(ListItemData data)
|
private void OnChangedItemData(ListItemData data)
|
||||||
{
|
{
|
||||||
Debug.Log($"OnChangedItemData: {data.Id} - {data.DisplayName}");
|
Debug.Log($"OnChangedItemData: {data.Id} - {data.DisplayName}");
|
||||||
UpdateData();
|
UpdateData();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
private void UpdateData()
|
private void UpdateData()
|
||||||
{
|
{
|
||||||
Debug.Log($"UpdateData: draggableList != null:{draggableList != null}, viewData != null:{viewData != null}, configKey:{key}");
|
Debug.Log($"UpdateData: draggableList != null:{draggableList != null}, viewData != null:{viewData != null}, configKey:{key}");
|
||||||
@@ -104,6 +109,23 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 전환 시 데이터가 있는 경우 전달 되는 데이터. SetContentData 이후 호출 됨
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
|
public void UpdateContentData(object? data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 닫힐 때 실행되는 로직을 처리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>비동기 닫기 작업을 나타내는 <see cref="UniTask"/>입니다.</returns>
|
||||||
|
public UniTask OnCloseAsync()
|
||||||
|
{
|
||||||
|
return UniTask.CompletedTask;
|
||||||
|
}
|
||||||
|
|
||||||
void OnDestroy()
|
void OnDestroy()
|
||||||
{
|
{
|
||||||
if (draggableList != null)
|
if (draggableList != null)
|
||||||
@@ -112,11 +134,6 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
draggableList.OnChangedItemData -= OnChangedItemData;
|
draggableList.OnChangedItemData -= OnChangedItemData;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public UniTask OnCloseAsync()
|
|
||||||
{
|
|
||||||
return UniTask.CompletedTask;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -13,7 +13,10 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
public TabController tabController; // 탭 컨트롤러
|
public TabController tabController; // 탭 컨트롤러
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
public void SetContentData(object? data)
|
public void SetContentData(object? data)
|
||||||
{
|
{
|
||||||
if (tabController != null)
|
if (tabController != null)
|
||||||
@@ -31,6 +34,37 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 전환 시 데이터가 있는 경우 전달 되는 데이터. SetContentData 이후 호출 됨
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
|
public void UpdateContentData(object? data)
|
||||||
|
{
|
||||||
|
if (data != null && data is string content)
|
||||||
|
{
|
||||||
|
Debug.Log($"UpdateContentData: {content}");
|
||||||
|
|
||||||
|
if (content.StartsWith("shortcut:"))
|
||||||
|
{
|
||||||
|
// 특정 탭으로 이동
|
||||||
|
string[] parts = content.Substring("shortcut:".Length - 1).Split('>');
|
||||||
|
if (parts.Length > 1)
|
||||||
|
{
|
||||||
|
// 시간차를 계산해 0.5초 후에 탭을 활성화
|
||||||
|
UniTask.Delay(500).ContinueWith(() => {
|
||||||
|
string tabKey = parts[1];
|
||||||
|
Debug.Log($"ActivateTab2: {tabKey}");
|
||||||
|
tabController?.ActivateTab(tabKey);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 닫힐 때 실행되는 로직을 처리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>비동기 닫기 작업을 나타내는 <see cref="UniTask"/>입니다.</returns>
|
||||||
public async UniTask OnCloseAsync()
|
public async UniTask OnCloseAsync()
|
||||||
{
|
{
|
||||||
await UserSetting.SaveToAppData(); // 데이터 마스크를 앱 데이터에 저장합니다.
|
await UserSetting.SaveToAppData(); // 데이터 마스크를 앱 데이터에 저장합니다.
|
||||||
|
|||||||
@@ -14,12 +14,28 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
[SerializeField]
|
[SerializeField]
|
||||||
private TextMeshProUGUI text;
|
private TextMeshProUGUI text;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
public void SetContentData(object? data)
|
public void SetContentData(object? data)
|
||||||
{
|
{
|
||||||
Debug.Log("GeneralInfoTabContent: SetContentData called");
|
Debug.Log("GeneralInfoTabContent: SetContentData called");
|
||||||
text.text = $"Version: {Application.version}";
|
text.text = $"Version: {Application.version}";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 전환 시 데이터가 있는 경우 전달 되는 데이터. SetContentData 이후 호출 됨
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
|
public void UpdateContentData(object? data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 닫힐 때 실행되는 로직을 처리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>비동기 닫기 작업을 나타내는 <see cref="UniTask"/>입니다.</returns>
|
||||||
public UniTask OnCloseAsync()
|
public UniTask OnCloseAsync()
|
||||||
{
|
{
|
||||||
Debug.Log("GeneralInfoTabContent: OnClose called");
|
Debug.Log("GeneralInfoTabContent: OnClose called");
|
||||||
|
|||||||
@@ -7,12 +7,27 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
{
|
{
|
||||||
public class InputSettingTabContent : MonoBehaviour, ITabContent
|
public class InputSettingTabContent : MonoBehaviour, ITabContent
|
||||||
{
|
{
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
public void SetContentData(object? data)
|
public void SetContentData(object? data)
|
||||||
{
|
{
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 전환 시 데이터가 있는 경우 전달 되는 데이터. SetContentData 이후 호출 됨
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
|
public void UpdateContentData(object? data)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 닫힐 때 실행되는 로직을 처리합니다.
|
||||||
|
/// </summary>
|
||||||
|
/// <returns>비동기 닫기 작업을 나타내는 <see cref="UniTask"/>입니다.</returns>
|
||||||
public UniTask OnCloseAsync()
|
public UniTask OnCloseAsync()
|
||||||
{
|
{
|
||||||
return UniTask.CompletedTask;
|
return UniTask.CompletedTask;
|
||||||
|
|||||||
@@ -22,12 +22,12 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
if (tabController != null)
|
if (tabController != null)
|
||||||
{
|
{
|
||||||
// 코드로 탭 설정하기
|
// 코드로 탭 설정하기
|
||||||
SetupTabs();
|
SetupTabs(content);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void SetupTabs()
|
private void SetupTabs(ModalContent content)
|
||||||
{
|
{
|
||||||
// 1. TabConfig 설정
|
// 1. TabConfig 설정
|
||||||
tabController?.AddTabConfig("GeneralInfo", "일반 정보", "Prefabs/UI/Modal/Setting/GeneralInfoTabContent", "Prefabs/UI/images/icon_info", null, true);
|
tabController?.AddTabConfig("GeneralInfo", "일반 정보", "Prefabs/UI/Modal/Setting/GeneralInfoTabContent", "Prefabs/UI/images/icon_info", null, true);
|
||||||
@@ -38,10 +38,27 @@ namespace UVC.Factory.Modal.Settings
|
|||||||
// 2. 컨트롤러 초기화
|
// 2. 컨트롤러 초기화
|
||||||
tabController?.Initialize();
|
tabController?.Initialize();
|
||||||
|
|
||||||
tabController.OnTabChanged += (index) =>
|
if (tabController != null)
|
||||||
{
|
{
|
||||||
Debug.Log($"탭이 변경되었습니다: {index}");
|
tabController.OnTabChanged += (index) =>
|
||||||
};
|
{
|
||||||
|
Debug.Log($"탭이 변경되었습니다: {index}");
|
||||||
|
};
|
||||||
|
if(content.Message.StartsWith("shortcut:"))
|
||||||
|
{
|
||||||
|
// 특정 탭으로 이동
|
||||||
|
string[] parts = content.Message.Substring("shortcut:".Length).Split('>');
|
||||||
|
if (parts.Length > 0)
|
||||||
|
{
|
||||||
|
//시간차를 계산해 0.5초 후에 탭을 활성화
|
||||||
|
UniTask.Delay(500).ContinueWith(() => {
|
||||||
|
Debug.Log($"ActivateTab: {parts[0]}");
|
||||||
|
string tabKey = parts[0];
|
||||||
|
tabController.ActivateTab(tabKey, content.Message);
|
||||||
|
});
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -168,7 +168,7 @@ namespace UVC.UI.List.ComponentList
|
|||||||
var modalContent = new ModalContent("Prefabs/UI/Modal/SettingModal")
|
var modalContent = new ModalContent("Prefabs/UI/Modal/SettingModal")
|
||||||
{
|
{
|
||||||
Title = "설정 카테고리",
|
Title = "설정 카테고리",
|
||||||
Message = $"DisplaySetting>{itemData.categoryName}"
|
Message = $"shortcut:DisplaySetting>{itemData.categoryName}"
|
||||||
};
|
};
|
||||||
|
|
||||||
// 4. 설정 모달을 엽니다. await 키워드를 사용하여 모달이 닫힐 때까지 기다립니다.
|
// 4. 설정 모달을 엽니다. await 키워드를 사용하여 모달이 닫힐 때까지 기다립니다.
|
||||||
@@ -211,6 +211,7 @@ namespace UVC.UI.List.ComponentList
|
|||||||
FactoryObject? obj = FactoryObjectManager.Instance.FindById(itemData.factoryObjectInfo.Id);
|
FactoryObject? obj = FactoryObjectManager.Instance.FindById(itemData.factoryObjectInfo.Id);
|
||||||
if (obj != null)
|
if (obj != null)
|
||||||
{
|
{
|
||||||
|
FactoryObjectSelectionManager.Instance.Deselect(obj);
|
||||||
// 객체를 비활성화(숨기기)합니다.
|
// 객체를 비활성화(숨기기)합니다.
|
||||||
obj.gameObject.SetActive(false);
|
obj.gameObject.SetActive(false);
|
||||||
|
|
||||||
|
|||||||
@@ -15,6 +15,12 @@ namespace UVC.UI.Tab
|
|||||||
/// <param name="data">전달할 데이터 객체</param>
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
void SetContentData(object? data);
|
void SetContentData(object? data);
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// 탭 전환 시 데이터가 있는 경우 전달 되는 데이터. SetContentData 이후 호출 됨
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="data">전달할 데이터 객체</param>
|
||||||
|
void UpdateContentData(object? data);
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 닫힐 때 실행되는 로직을 처리합니다.
|
/// 닫힐 때 실행되는 로직을 처리합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -47,14 +47,14 @@ namespace UVC.UI.Tab
|
|||||||
///
|
///
|
||||||
/// private object CreateAGVData()
|
/// private object CreateAGVData()
|
||||||
/// {
|
/// {
|
||||||
/// Dictionary<string, string> data = new Dictionary<string, string>();
|
/// Dictionary<string, string> updateData = new Dictionary<string, string>();
|
||||||
/// return data;
|
/// return updateData;
|
||||||
/// }
|
/// }
|
||||||
///
|
///
|
||||||
/// private object CreateAlarmData()
|
/// private object CreateAlarmData()
|
||||||
/// {
|
/// {
|
||||||
/// Dictionary<string, string> data = new Dictionary<string, string>();
|
/// Dictionary<string, string> updateData = new Dictionary<string, string>();
|
||||||
/// return data;
|
/// return updateData;
|
||||||
/// }
|
/// }
|
||||||
/// }
|
/// }
|
||||||
/// </code>
|
/// </code>
|
||||||
@@ -200,7 +200,7 @@ namespace UVC.UI.Tab
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 탭 변경 이벤트 처리
|
/// 탭 변경 이벤트 처리
|
||||||
/// </summary>
|
/// </summary>
|
||||||
private void HandleTabChanged(int newTabIndex)
|
private void HandleTabChanged(int newTabIndex, object? updateData = null)
|
||||||
{
|
{
|
||||||
if (_tabModel == null || tabView == null) return;
|
if (_tabModel == null || tabView == null) return;
|
||||||
|
|
||||||
@@ -208,7 +208,7 @@ namespace UVC.UI.Tab
|
|||||||
if (activeTabData == null) return;
|
if (activeTabData == null) return;
|
||||||
|
|
||||||
// TabView에 탭 변경 전달
|
// TabView에 탭 변경 전달
|
||||||
tabView.UpdateActiveTab(newTabIndex, _tabModel.PrevTabIndex, activeTabData).ContinueWith(() =>
|
tabView.UpdateActiveTab(newTabIndex, _tabModel.PrevTabIndex, activeTabData, updateData).ContinueWith(() =>
|
||||||
{
|
{
|
||||||
// 외부 이벤트 발생
|
// 외부 이벤트 발생
|
||||||
OnTabChanged?.Invoke(newTabIndex);
|
OnTabChanged?.Invoke(newTabIndex);
|
||||||
@@ -223,17 +223,21 @@ namespace UVC.UI.Tab
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// ID로 특정 탭을 활성화합니다.
|
/// ID로 특정 탭을 활성화합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ActivateTab(string tabID)
|
/// <param name="tabID">활성화할 탭의 ID</param>
|
||||||
|
/// <param name="updateData">탭에 전달할 데이터 (선택적)</param>
|
||||||
|
public void ActivateTab(string tabID, object? updateData = null)
|
||||||
{
|
{
|
||||||
_tabModel?.SwitchToTab(tabID);
|
_tabModel?.SwitchToTab(tabID, updateData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 인덱스로 특정 탭을 활성화합니다.
|
/// 인덱스로 특정 탭을 활성화합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ActivateTab(int tabIndex)
|
/// <param name="tabIndex">활성화할 탭의 인덱스</param>
|
||||||
|
/// <param name="updateData">탭에 전달할 데이터 (선택적)</param>
|
||||||
|
public void ActivateTab(int tabIndex, object? updateData = null)
|
||||||
{
|
{
|
||||||
_tabModel?.SwitchToTab(tabIndex);
|
_tabModel?.SwitchToTab(tabIndex, updateData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|||||||
@@ -37,7 +37,7 @@ namespace UVC.UI.Tab
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 탭이 변경될 때 발생하는 이벤트입니다.
|
/// 탭이 변경될 때 발생하는 이벤트입니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public event Action<int>? OnTabChanged;
|
public event Action<int, object?>? OnTabChanged;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 새로운 탭을 모델에 추가합니다.
|
/// 새로운 탭을 모델에 추가합니다.
|
||||||
@@ -58,7 +58,8 @@ namespace UVC.UI.Tab
|
|||||||
/// 탭 인덱스로 탭을 전환합니다.
|
/// 탭 인덱스로 탭을 전환합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="tabIndex">활성화할 탭의 인덱스</param>
|
/// <param name="tabIndex">활성화할 탭의 인덱스</param>
|
||||||
public void SwitchToTab(int tabIndex)
|
/// <param name="updateData">탭 전환 시 전달할 데이터 (선택적)</param>
|
||||||
|
public void SwitchToTab(int tabIndex, object? updateData = null)
|
||||||
{
|
{
|
||||||
// 인덱스 범위 확인
|
// 인덱스 범위 확인
|
||||||
if (tabIndex < 0 || tabIndex >= _tabs.Count)
|
if (tabIndex < 0 || tabIndex >= _tabs.Count)
|
||||||
@@ -79,20 +80,21 @@ namespace UVC.UI.Tab
|
|||||||
_activeTabIndex = tabIndex;
|
_activeTabIndex = tabIndex;
|
||||||
|
|
||||||
// 이벤트 발생
|
// 이벤트 발생
|
||||||
OnTabChanged?.Invoke(_activeTabIndex);
|
OnTabChanged?.Invoke(_activeTabIndex, updateData);
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 탭 ID로 탭을 전환합니다.
|
/// 탭 ID로 탭을 전환합니다.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="tabID">활성화할 탭의 ID</param>
|
/// <param name="tabID">활성화할 탭의 ID</param>
|
||||||
public void SwitchToTab(string tabID)
|
/// <param name="updateData">탭 전환 시 전달할 데이터 (선택적)</param>
|
||||||
|
public void SwitchToTab(string tabID, object? updateData = null)
|
||||||
{
|
{
|
||||||
for (int i = 0; i < _tabs.Count; i++)
|
for (int i = 0; i < _tabs.Count; i++)
|
||||||
{
|
{
|
||||||
if (_tabs[i].tabID == tabID)
|
if (_tabs[i].tabID == tabID)
|
||||||
{
|
{
|
||||||
SwitchToTab(i);
|
SwitchToTab(i, updateData);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -217,7 +217,8 @@ namespace UVC.UI.Tab
|
|||||||
/// <param name="tabIndex">활성화할 탭 인덱스</param>
|
/// <param name="tabIndex">활성화할 탭 인덱스</param>
|
||||||
/// <param name="prevTabIndex">현재 활성화 된 탭 인덱스. 없으면 -1</param>
|
/// <param name="prevTabIndex">현재 활성화 된 탭 인덱스. 없으면 -1</param>
|
||||||
/// <param name="tabData">탭 데이터</param>
|
/// <param name="tabData">탭 데이터</param>
|
||||||
public async UniTask UpdateActiveTab(int tabIndex, int prevTabIndex, TabData tabData)
|
/// <param name="updateData">업데이트할 데이터 (선택적)</param>
|
||||||
|
public async UniTask UpdateActiveTab(int tabIndex, int prevTabIndex, TabData tabData, object? updateData = null)
|
||||||
{
|
{
|
||||||
if (tabIndex < 0 || tabIndex >= _tabConfigs.Count) return;
|
if (tabIndex < 0 || tabIndex >= _tabConfigs.Count) return;
|
||||||
var config = _tabConfigs[tabIndex];
|
var config = _tabConfigs[tabIndex];
|
||||||
@@ -273,6 +274,7 @@ namespace UVC.UI.Tab
|
|||||||
// 데이터 업데이트
|
// 데이터 업데이트
|
||||||
ITabContent? tabContent = activeContent.GetComponent<ITabContent>();
|
ITabContent? tabContent = activeContent.GetComponent<ITabContent>();
|
||||||
tabContent?.SetContentData(tabData.contentData);
|
tabContent?.SetContentData(tabData.contentData);
|
||||||
|
if(updateData != null) tabContent?.UpdateContentData(updateData);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 탭 버튼 상태 업데이트
|
// 탭 버튼 상태 업데이트
|
||||||
|
|||||||
Reference in New Issue
Block a user