샘플 코드 개선. UTKHelpBox 개선
This commit is contained in:
@@ -13,6 +13,175 @@ public partial class UTKStyleGuideSample
|
||||
{
|
||||
#region Input Initializers
|
||||
|
||||
private void InitializeInputFieldSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 입력 필드
|
||||
var input = new UTKInputField();
|
||||
input.label = ""이름""; // Unity TextField의 label 프로퍼티 (소문자)
|
||||
input.Placeholder = ""이름을 입력하세요"";
|
||||
input.OnValueChanged += (value) => Debug.Log($""입력값: {value}"");
|
||||
|
||||
// 비밀번호 입력 필드
|
||||
var password = new UTKInputField();
|
||||
password.label = ""비밀번호"";
|
||||
password.isPasswordField = true;
|
||||
|
||||
// 검증 오류 표시
|
||||
input.ErrorMessage = ""이름은 필수입니다."";
|
||||
input.ErrorMessage = """"; // 오류 제거
|
||||
|
||||
// 변형 스타일
|
||||
input.Variant = UTKInputField.InputFieldVariant.Outlined;
|
||||
|
||||
// 이벤트
|
||||
input.OnFocused += () => Debug.Log(""포커스"");
|
||||
input.OnBlurred += () => Debug.Log(""포커스 해제"");
|
||||
input.OnSubmit += (value) => Debug.Log($""제출: {value}"");
|
||||
|
||||
// 비활성화
|
||||
input.IsEnabled = false;
|
||||
|
||||
// 읽기 전용
|
||||
input.isReadOnly = true;
|
||||
|
||||
// 여러 줄 입력
|
||||
input.multiline = true;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 입력 필드 -->
|
||||
<utk:UTKInputField label=""이름"" />
|
||||
|
||||
<!-- 플레이스홀더 -->
|
||||
<utk:UTKInputField label=""이메일"" placeholder=""example@email.com"" />
|
||||
|
||||
<!-- 비밀번호 필드 -->
|
||||
<utk:UTKInputField label=""비밀번호"" is-password-field=""true"" />
|
||||
|
||||
<!-- 여러 줄 입력 -->
|
||||
<utk:UTKInputField label=""설명"" multiline=""true"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKInputField label=""읽기전용"" is-enabled=""false"" value=""수정 불가"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeIntegerFieldSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 정수 필드
|
||||
var intField = new UTKIntegerField(""나이"");
|
||||
intField.Value = 25;
|
||||
intField.OnValueChanged += (value) => Debug.Log($""나이: {value}"");
|
||||
|
||||
// 범위 제한 (이벤트로 처리)
|
||||
intField.OnValueChanged += (value) =>
|
||||
{
|
||||
if (value < 0) intField.Value = 0;
|
||||
if (value > 150) intField.Value = 150;
|
||||
};
|
||||
|
||||
// 비활성화
|
||||
intField.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 정수 필드 -->
|
||||
<utk:UTKIntegerField label=""나이"" />
|
||||
|
||||
<!-- 기본값 설정 -->
|
||||
<utk:UTKIntegerField label=""점수"" value=""100"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKIntegerField label=""읽기전용"" is-enabled=""false"" value=""50"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeLongFieldSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 Long 필드
|
||||
var longField = new UTKLongField(""파일 크기"");
|
||||
longField.Value = 1073741824; // 1GB
|
||||
longField.OnValueChanged += (value) => Debug.Log($""크기: {value} bytes"");
|
||||
|
||||
// 비활성화
|
||||
longField.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 Long 필드 -->
|
||||
<utk:UTKLongField label=""파일 크기"" />
|
||||
|
||||
<!-- 기본값 설정 -->
|
||||
<utk:UTKLongField label=""큰 숫자"" value=""9223372036854775807"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKLongField label=""읽기전용"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeFloatFieldSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 Float 필드
|
||||
var floatField = new UTKFloatField(""속도"");
|
||||
floatField.Value = 9.8f;
|
||||
floatField.OnValueChanged += (value) => Debug.Log($""속도: {value}"");
|
||||
|
||||
// 범위 제한 (이벤트로 처리)
|
||||
floatField.OnValueChanged += (value) =>
|
||||
{
|
||||
if (value < 0f) floatField.Value = 0f;
|
||||
if (value > 100f) floatField.Value = 100f;
|
||||
};
|
||||
|
||||
// 비활성화
|
||||
floatField.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 Float 필드 -->
|
||||
<utk:UTKFloatField label=""속도"" />
|
||||
|
||||
<!-- 기본값 설정 -->
|
||||
<utk:UTKFloatField label=""중력"" value=""9.8"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKFloatField label=""읽기전용"" is-enabled=""false"" value=""3.14"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeDoubleFieldSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 Double 필드
|
||||
var doubleField = new UTKDoubleField(""정밀도"");
|
||||
doubleField.Value = 3.141592653589793;
|
||||
doubleField.OnValueChanged += (value) => Debug.Log($""값: {value}"");
|
||||
|
||||
// 비활성화
|
||||
doubleField.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 Double 필드 -->
|
||||
<utk:UTKDoubleField label=""정밀도"" />
|
||||
|
||||
<!-- 기본값 설정 -->
|
||||
<utk:UTKDoubleField label=""파이"" value=""3.141592653589793"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKDoubleField label=""읽기전용"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeNumberStepperSample(VisualElement root)
|
||||
{
|
||||
var disabledRow = root.Q<VisualElement>("stepper-disabled-row");
|
||||
@@ -82,7 +251,7 @@ positionField.OnValueChanged += (newValue) => Debug.Log($""Position: {newValue}"
|
||||
|
||||
// 라벨 없이
|
||||
var field = new UTKVector2Field();
|
||||
field.Label = """";
|
||||
field.label = """";
|
||||
|
||||
// 읽기 전용
|
||||
var readOnlyField = new UTKVector2Field(""ReadOnly"");
|
||||
@@ -353,5 +522,128 @@ enumField.IsEnabled = false;",
|
||||
<utk:UTKEnumDropDown name=""enum-dropdown-2"" label=""Choice"" is-enabled=""false"" />");
|
||||
}
|
||||
|
||||
#region Slider Initializers
|
||||
|
||||
private void InitializeSliderSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 슬라이더
|
||||
var slider = new UTKSlider();
|
||||
slider.label = ""볼륨""; // Unity Slider의 label 프로퍼티 (소문자)
|
||||
slider.lowValue = 0;
|
||||
slider.highValue = 100;
|
||||
slider.value = 50;
|
||||
slider.OnValueChanged += (value) => Debug.Log($""볼륨: {value}"");
|
||||
|
||||
// 생성자로 생성
|
||||
var volumeSlider = new UTKSlider(""볼륨"", 0, 100, 75);
|
||||
|
||||
// 정수만 허용
|
||||
slider.showInputField = true;
|
||||
|
||||
// 비활성화
|
||||
slider.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 슬라이더 -->
|
||||
<utk:UTKSlider label=""볼륨"" low-value=""0"" high-value=""100"" value=""50"" />
|
||||
|
||||
<!-- 정수만 -->
|
||||
<utk:UTKSlider label=""레벨"" low-value=""1"" high-value=""10"" value=""5"" whole-numbers=""true"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKSlider label=""잠금"" is-enabled=""false"" value=""30"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeMinMaxSliderSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 MinMax 슬라이더
|
||||
var minMaxSlider = new UTKMinMaxSlider();
|
||||
minMaxSlider.label = ""가격 범위""; // Unity MinMaxSlider의 label 프로퍼티
|
||||
minMaxSlider.lowLimit = 0; // 전체 범위 최소값
|
||||
minMaxSlider.highLimit = 1000; // 전체 범위 최대값
|
||||
minMaxSlider.MinValue = 100; // 선택 범위 최소값
|
||||
minMaxSlider.MaxValue = 500; // 선택 범위 최대값
|
||||
|
||||
// 값 변경 이벤트 (Vector2로 반환됨)
|
||||
minMaxSlider.OnValueChanged += (range) =>
|
||||
{
|
||||
Debug.Log($""범위: {range.x} ~ {range.y}"");
|
||||
};
|
||||
|
||||
// 생성자로 생성 (label, lowLimit, highLimit, minValue, maxValue)
|
||||
var rangeSlider = new UTKMinMaxSlider(""범위"", 0, 100, 20, 80);
|
||||
|
||||
// 비활성화
|
||||
minMaxSlider.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 MinMax 슬라이더 -->
|
||||
<utk:UTKMinMaxSlider label=""가격 범위"" min-limit=""0"" max-limit=""1000"" min-value=""100"" max-value=""500"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKMinMaxSlider label=""잠금"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeProgressBarSample(VisualElement root)
|
||||
{
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 프로그레스 바
|
||||
var progressBar = new UTKProgressBar();
|
||||
progressBar.title = ""다운로드""; // ProgressBar의 title 프로퍼티
|
||||
progressBar.MinValue = 0; // 또는 lowValue 직접 사용
|
||||
progressBar.MaxValue = 100; // 또는 highValue 직접 사용
|
||||
progressBar.Value = 45;
|
||||
|
||||
// 생성자로 생성 (title, minValue, maxValue, defaultValue)
|
||||
var downloadBar = new UTKProgressBar(""다운로드"", 0, 100, 75);
|
||||
|
||||
// 진행률 업데이트
|
||||
progressBar.Value = 75;
|
||||
|
||||
// 퍼센트 표시
|
||||
progressBar.ShowPercentage = true;
|
||||
|
||||
// 색상 변형
|
||||
progressBar.Variant = UTKProgressBar.ProgressBarVariant.Success;
|
||||
progressBar.Variant = UTKProgressBar.ProgressBarVariant.Warning;
|
||||
progressBar.Variant = UTKProgressBar.ProgressBarVariant.Danger;
|
||||
|
||||
// 비동기 작업 진행률 표시
|
||||
async UniTask LoadDataAsync()
|
||||
{
|
||||
for (int i = 0; i <= 100; i += 10)
|
||||
{
|
||||
progressBar.Value = i;
|
||||
await UniTask.Delay(100);
|
||||
}
|
||||
}",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 프로그레스 바 -->
|
||||
<utk:UTKProgressBar label=""로딩"" low-value=""0"" high-value=""100"" value=""45"" />
|
||||
|
||||
<!-- 성공 스타일 -->
|
||||
<utk:UTKProgressBar label=""완료"" value=""100"" variant=""Success"" />
|
||||
|
||||
<!-- 경고 스타일 -->
|
||||
<utk:UTKProgressBar label=""주의"" value=""75"" variant=""Warning"" />
|
||||
|
||||
<!-- 위험 스타일 -->
|
||||
<utk:UTKProgressBar label=""오류"" value=""30"" variant=""Danger"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#endregion
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user