toolbar 개발 중

This commit is contained in:
logonkhi
2025-06-16 19:30:01 +09:00
parent 2ffe7abac6
commit 63b71216cb
92 changed files with 5915 additions and 530 deletions

View File

@@ -20,7 +20,7 @@ namespace UVC.UI.Modal
/// };
///
/// // 이렇게 만든 레시피(myRecipe)를 Modal.Open()에 전달하면 모달이 뿅 나타나요!
/// // bool userChoseConfirm = await Modal.Open<bool>(myRecipe);
/// // bool userChoseConfirm = await Modal.Open<bool>(myRecipe);
/// </code>
/// </example>
public class ModalContent
@@ -37,11 +37,12 @@ namespace UVC.UI.Modal
/// </summary>
public string Message { get; set; }
private string _confirmButtonText;
private string _confirmButtonText = "확인";
/// <summary>
/// ✅ '확인' 버튼에 보여줄 글자예요.
/// 특별히 정해주지 않으면 기본적으로 "확인" (또는 설정된 언어에 맞게)이라고 나와요.
/// 직접 "네", "저장하기", "출발!" 처럼 원하는 글자로 바꿀 수 있어요.
/// 다국어 키를 사용해서 설정할 수도 있어요. (예: "ui_button_confirm", "action_ok")
/// </summary>
public string ConfirmButtonText
{
@@ -50,19 +51,20 @@ namespace UVC.UI.Modal
// _confirmButtonText가 명시적으로 설정되지 않았고, LocalizationManager 사용이 가능하다면 번역된 문자열을 반환
if (string.IsNullOrEmpty(_confirmButtonText) && LocalizationManager.Instance != null)
{
return LocalizationManager.Instance.GetString("button_confirm");
return LocalizationManager.Instance.GetString(_confirmButtonText);
}
// 명시적으로 설정된 값이 있거나 LocalizationManager를 사용할 수 없다면 해당 값 또는 기본 키 반환
return !string.IsNullOrEmpty(_confirmButtonText) ? _confirmButtonText : "[button_confirm]";
return _confirmButtonText;
}
set => _confirmButtonText = value;
}
private string _cancelButtonText;
private string _cancelButtonText = "취소";
/// <summary>
/// ❌ '취소' 버튼에 보여줄 글자예요.
/// 특별히 정해주지 않으면 기본적으로 "취소" (또는 설정된 언어에 맞게)이라고 나와요.
/// 직접 "아니요", "닫기", "나중에" 처럼 원하는 글자로 바꿀 수 있어요.
/// 다국어 키를 사용해서 설정할 수도 있어요. (예: "ui_button_cancel", "action_no")
/// </summary>
public string CancelButtonText
{
@@ -71,10 +73,10 @@ namespace UVC.UI.Modal
// _cancelButtonText가 명시적으로 설정되지 않았고, LocalizationManager 사용이 가능하다면 번역된 문자열을 반환
if (string.IsNullOrEmpty(_cancelButtonText) && LocalizationManager.Instance != null)
{
return LocalizationManager.Instance.GetString("button_cancel");
return LocalizationManager.Instance.GetString(_cancelButtonText);
}
// 명시적으로 설정된 값이 있거나 LocalizationManager를 사용할 수 없다면 해당 값 또는 기본 키 반환
return !string.IsNullOrEmpty(_cancelButtonText) ? _cancelButtonText : "[button_cancel]";
return _cancelButtonText;
}
set => _cancelButtonText = value;
}
@@ -122,46 +124,7 @@ namespace UVC.UI.Modal
PrefabPath = prefabPath;
// Title, Message 등 다른 텍스트 속성도 필요한 경우 여기서 기본 다국어 키를 사용하여 초기화할 수 있습니다.
// 예: Title = LocalizationManager.Instance.GetString("default_modal_title");
}
/// <summary>
/// 🔑 '확인' 버튼의 글자를 다국어 키를 사용해서 설정해요.
/// 게임이 여러 언어를 지원할 때 유용해요.
/// </summary>
/// <param name="localizationKey">미리 정해둔 다국어 키 (예: "ui_button_yes", "action_save")</param>
public void SetConfirmButtonTextFromKey(string localizationKey)
{
// 직접 값을 설정하는 대신, 키를 저장하고 getter에서 처리하도록 할 수도 있으나,
// 현재 구조에서는 setter를 통해 LocalizationManager.GetString을 호출하는 것이 더 간단합니다.
// 다만, 이 경우 인스턴스 생성 시점의 언어에 고정될 수 있으므로,
// 아래와 같이 getter에서 매번 가져오도록 하는 것이 언어 변경에 동적으로 반응합니다.
// 여기서는 명시적 설정을 위해 _confirmButtonText를 사용합니다.
// 만약 항상 최신 언어를 반영해야 한다면, _confirmButtonTextKey 와 같은 필드를 두고 getter에서 처리해야 합니다.
if (LocalizationManager.Instance != null)
{
_confirmButtonText = LocalizationManager.Instance.GetString(localizationKey);
}
else
{
_confirmButtonText = $"[{localizationKey}]";
}
}
/// <summary>
/// 🔑 '취소' 버튼의 글자를 다국어 키를 사용해서 설정해요.
/// </summary>
/// <param name="localizationKey">미리 정해둔 다국어 키 (예: "ui_button_no", "action_cancel")</param>
public void SetCancelButtonTextFromKey(string localizationKey)
{
if (LocalizationManager.Instance != null)
{
_cancelButtonText = LocalizationManager.Instance.GetString(localizationKey);
}
else
{
_cancelButtonText = $"[{localizationKey}]";
}
}
}
/// <summary>
/// 🚀 모달 창이 화면에 나타나기 *직전*에 이 레시피가 할 일을 정해요. (비동기 작업 가능)