ComponentList > 표시 설정 바로가기 기능 개발
This commit is contained in:
@@ -8,14 +8,31 @@ namespace UVC.Factory.Modal.Settings
|
||||
public class AlarmSettingTabContent : MonoBehaviour, ITabContent
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||
/// </summary>
|
||||
/// <param name="data">전달할 데이터 객체</param>
|
||||
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()
|
||||
{
|
||||
return UniTask.CompletedTask;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -77,12 +77,17 @@ namespace UVC.Factory.Modal.Settings
|
||||
Debug.Log($"OnOrderChanged: {data.Id} from {oldIndex} to {newIndex}");
|
||||
UpdateData();
|
||||
}
|
||||
|
||||
private void OnChangedItemData(ListItemData data)
|
||||
{
|
||||
Debug.Log($"OnChangedItemData: {data.Id} - {data.DisplayName}");
|
||||
UpdateData();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||
/// </summary>
|
||||
/// <param name="data">전달할 데이터 객체</param>
|
||||
private void UpdateData()
|
||||
{
|
||||
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()
|
||||
{
|
||||
if (draggableList != null)
|
||||
@@ -112,11 +134,6 @@ namespace UVC.Factory.Modal.Settings
|
||||
draggableList.OnChangedItemData -= OnChangedItemData;
|
||||
}
|
||||
}
|
||||
|
||||
public UniTask OnCloseAsync()
|
||||
{
|
||||
return UniTask.CompletedTask;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -12,8 +12,11 @@ namespace UVC.Factory.Modal.Settings
|
||||
{
|
||||
[SerializeField]
|
||||
public TabController tabController; // 탭 컨트롤러
|
||||
|
||||
|
||||
/// <summary>
|
||||
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||
/// </summary>
|
||||
/// <param name="data">전달할 데이터 객체</param>
|
||||
public void SetContentData(object? data)
|
||||
{
|
||||
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()
|
||||
{
|
||||
await UserSetting.SaveToAppData(); // 데이터 마스크를 앱 데이터에 저장합니다.
|
||||
|
||||
@@ -14,12 +14,28 @@ namespace UVC.Factory.Modal.Settings
|
||||
[SerializeField]
|
||||
private TextMeshProUGUI text;
|
||||
|
||||
/// <summary>
|
||||
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||
/// </summary>
|
||||
/// <param name="data">전달할 데이터 객체</param>
|
||||
public void SetContentData(object? data)
|
||||
{
|
||||
Debug.Log("GeneralInfoTabContent: SetContentData called");
|
||||
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()
|
||||
{
|
||||
Debug.Log("GeneralInfoTabContent: OnClose called");
|
||||
|
||||
@@ -7,12 +7,27 @@ namespace UVC.Factory.Modal.Settings
|
||||
{
|
||||
public class InputSettingTabContent : MonoBehaviour, ITabContent
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
/// 탭 콘텐츠에 데이터를 전달합니다.
|
||||
/// </summary>
|
||||
/// <param name="data">전달할 데이터 객체</param>
|
||||
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()
|
||||
{
|
||||
return UniTask.CompletedTask;
|
||||
|
||||
@@ -22,12 +22,12 @@ namespace UVC.Factory.Modal.Settings
|
||||
if (tabController != null)
|
||||
{
|
||||
// 코드로 탭 설정하기
|
||||
SetupTabs();
|
||||
SetupTabs(content);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
private void SetupTabs()
|
||||
private void SetupTabs(ModalContent content)
|
||||
{
|
||||
// 1. TabConfig 설정
|
||||
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. 컨트롤러 초기화
|
||||
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);
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user