스타일 가이드 수정 중
This commit is contained in:
357
Assets/Sample/UIToolkit/UTKStyleGuideSample.Input.cs
Normal file
357
Assets/Sample/UIToolkit/UTKStyleGuideSample.Input.cs
Normal file
@@ -0,0 +1,357 @@
|
||||
#nullable enable
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using Cysharp.Threading.Tasks;
|
||||
using UnityEngine;
|
||||
using UnityEngine.UIElements;
|
||||
using UVC.UIToolkit;
|
||||
|
||||
/// <summary>
|
||||
/// UTKStyleGuideSample의 Input 카테고리 Initialize 메서드들
|
||||
/// </summary>
|
||||
public partial class UTKStyleGuideSample
|
||||
{
|
||||
#region Input Initializers
|
||||
|
||||
private void InitializeNumberStepperSample(VisualElement root)
|
||||
{
|
||||
var disabledRow = root.Q<VisualElement>("stepper-disabled-row");
|
||||
if (disabledRow != null)
|
||||
{
|
||||
var stepper = new UTKNumberStepper(0, 100, 30, 1);
|
||||
stepper.style.width = 150;
|
||||
stepper.SetEnabled(false);
|
||||
disabledRow.Add(stepper);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var stepper = new UTKNumberStepper(minValue: 0, maxValue: 100, value: 50, step: 1);
|
||||
stepper.OnValueChanged += (newValue) => Debug.Log($""Value: {newValue}"");
|
||||
|
||||
// Step 설정
|
||||
var stepper5 = new UTKNumberStepper(0, 100, 25, 5); // Step 5씩 증감
|
||||
|
||||
// Wrap Around (최소/최대값에서 순환)
|
||||
var wrapStepper = new UTKNumberStepper(0, 100, 0, 10);
|
||||
wrapStepper.WrapAround = true; // 0 -> -10 시 100으로 순환
|
||||
|
||||
// 비활성화
|
||||
var disabledStepper = new UTKNumberStepper(0, 100, 30, 1);
|
||||
disabledStepper.SetEnabled(false);
|
||||
|
||||
// 속성 변경
|
||||
stepper.Value = 75;
|
||||
stepper.MinValue = 10;
|
||||
stepper.MaxValue = 90;
|
||||
stepper.Step = 2;",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- Step 1 -->
|
||||
<utk:UTKNumberStepper min-value=""0"" max-value=""100"" value=""50"" step=""1"" />
|
||||
|
||||
<!-- Step 5 -->
|
||||
<utk:UTKNumberStepper min-value=""0"" max-value=""100"" value=""25"" step=""5"" />
|
||||
|
||||
<!-- Wrap Around -->
|
||||
<utk:UTKNumberStepper min-value=""0"" max-value=""100"" value=""0"" step=""10"" wrap-around=""true"" />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKNumberStepper min-value=""0"" max-value=""100"" value=""30"" step=""1"" is-enabled=""false"" />
|
||||
|
||||
<!-- 커스텀 스타일 -->
|
||||
<utk:UTKNumberStepper class=""custom-stepper"" style=""width: 150px;"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeVector2FieldSample(VisualElement root)
|
||||
{
|
||||
var field = root.Q<UTKVector2Field>("vec2-position");
|
||||
if (field != null)
|
||||
{
|
||||
field.Value = new Vector2(100, 200);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var positionField = new UTKVector2Field(""Position"");
|
||||
positionField.Value = new Vector2(100, 200);
|
||||
positionField.OnValueChanged += (newValue) => Debug.Log($""Position: {newValue}"");
|
||||
|
||||
// 라벨 없이
|
||||
var field = new UTKVector2Field();
|
||||
field.Label = """";
|
||||
|
||||
// 읽기 전용
|
||||
var readOnlyField = new UTKVector2Field(""ReadOnly"");
|
||||
readOnlyField.SetEnabled(false);",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 사용 -->
|
||||
<utk:UTKVector2Field label=""Position"" />
|
||||
|
||||
<!-- 라벨 없이 -->
|
||||
<utk:UTKVector2Field />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKVector2Field label=""ReadOnly"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeVector3FieldSample(VisualElement root)
|
||||
{
|
||||
var field = root.Q<UTKVector3Field>("vec3-position");
|
||||
if (field != null)
|
||||
{
|
||||
field.Value = new Vector3(10, 20, 30);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var positionField = new UTKVector3Field(""Position"");
|
||||
positionField.Value = new Vector3(10, 20, 30);
|
||||
positionField.OnValueChanged += (newValue) => Debug.Log($""Position: {newValue}"");
|
||||
|
||||
// 회전 벡터
|
||||
var rotationField = new UTKVector3Field(""Rotation"");
|
||||
rotationField.Value = new Vector3(0, 90, 0);
|
||||
|
||||
// 비활성화
|
||||
var disabledField = new UTKVector3Field(""Disabled"");
|
||||
disabledField.SetEnabled(false);",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 사용 -->
|
||||
<utk:UTKVector3Field label=""Position"" />
|
||||
|
||||
<!-- 라벨 없이 -->
|
||||
<utk:UTKVector3Field />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKVector3Field label=""Disabled"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeVector4FieldSample(VisualElement root)
|
||||
{
|
||||
var field = root.Q<UTKVector4Field>("vec4-color");
|
||||
if (field != null)
|
||||
{
|
||||
field.Value = new Vector4(1, 0.5f, 0.25f, 1);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var colorField = new UTKVector4Field(""Color"");
|
||||
colorField.Value = new Vector4(1, 0.5f, 0.25f, 1); // RGBA
|
||||
colorField.OnValueChanged += (newValue) => Debug.Log($""Color: {newValue}"");
|
||||
|
||||
// 쿼터니언 값
|
||||
var quaternionField = new UTKVector4Field(""Quaternion"");
|
||||
var quat = Quaternion.identity;
|
||||
quaternionField.Value = new Vector4(quat.x, quat.y, quat.z, quat.w);
|
||||
|
||||
// 비활성화
|
||||
var disabledField = new UTKVector4Field(""Disabled"");
|
||||
disabledField.SetEnabled(false);",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 사용 -->
|
||||
<utk:UTKVector4Field label=""Color"" />
|
||||
|
||||
<!-- 라벨 없이 -->
|
||||
<utk:UTKVector4Field />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKVector4Field label=""Disabled"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeRectFieldSample(VisualElement root)
|
||||
{
|
||||
var field = root.Q<UTKRectField>("rect-area");
|
||||
if (field != null)
|
||||
{
|
||||
field.Value = new Rect(10, 20, 100, 50);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var areaField = new UTKRectField(""Area"");
|
||||
areaField.Value = new Rect(10, 20, 100, 50); // x, y, width, height
|
||||
areaField.OnValueChanged += (newValue) => Debug.Log($""Rect: {newValue}"");
|
||||
|
||||
// 화면 영역 설정
|
||||
var screenArea = new UTKRectField(""Screen Area"");
|
||||
screenArea.Value = new Rect(0, 0, Screen.width, Screen.height);
|
||||
|
||||
// 비활성화
|
||||
var disabledField = new UTKRectField(""Disabled"");
|
||||
disabledField.SetEnabled(false);",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 사용 -->
|
||||
<utk:UTKRectField label=""Area"" />
|
||||
|
||||
<!-- 라벨 없이 -->
|
||||
<utk:UTKRectField />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKRectField label=""Disabled"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
private void InitializeBoundsFieldSample(VisualElement root)
|
||||
{
|
||||
var field = root.Q<UTKBoundsField>("bounds-collision");
|
||||
if (field != null)
|
||||
{
|
||||
field.Value = new Bounds(new Vector3(0, 1, 0), new Vector3(2, 2, 2));
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var boundsField = new UTKBoundsField(""Bounds"");
|
||||
var center = new Vector3(0, 1, 0);
|
||||
var size = new Vector3(2, 2, 2);
|
||||
boundsField.Value = new Bounds(center, size);
|
||||
boundsField.OnValueChanged += (newValue) => Debug.Log($""Bounds: {newValue}"");
|
||||
|
||||
// 콜라이더 범위 설정
|
||||
var collisionField = new UTKBoundsField(""Collision Bounds"");
|
||||
collisionField.Value = new Bounds(Vector3.zero, Vector3.one * 5);
|
||||
|
||||
// 비활성화
|
||||
var disabledField = new UTKBoundsField(""Disabled"");
|
||||
disabledField.SetEnabled(false);",
|
||||
uxmlCode: @"<!-- 네임스페이스 선언 -->
|
||||
<ui:UXML xmlns:utk=""UVC.UIToolkit"">
|
||||
|
||||
<!-- 기본 사용 -->
|
||||
<utk:UTKBoundsField label=""Bounds"" />
|
||||
|
||||
<!-- 라벨 없이 -->
|
||||
<utk:UTKBoundsField />
|
||||
|
||||
<!-- 비활성화 -->
|
||||
<utk:UTKBoundsField label=""Disabled"" is-enabled=""false"" />
|
||||
|
||||
</ui:UXML>");
|
||||
}
|
||||
|
||||
#endregion
|
||||
|
||||
#region Dropdown Initializers
|
||||
|
||||
private void InitializeDropdownSample(VisualElement root)
|
||||
{
|
||||
var normalRow = root.Q<VisualElement>("dropdown-normal-row");
|
||||
if (normalRow != null)
|
||||
{
|
||||
var dropdown = new UTKDropdown("Select Option");
|
||||
dropdown.SetOptions(new List<string> { "Option 1", "Option 2", "Option 3", "Option 4" });
|
||||
dropdown.SelectedIndex = 0;
|
||||
normalRow.Add(dropdown);
|
||||
}
|
||||
|
||||
var disabledRow = root.Q<VisualElement>("dropdown-disabled-row");
|
||||
if (disabledRow != null)
|
||||
{
|
||||
var dropdown = new UTKDropdown("Disabled");
|
||||
dropdown.SetOptions(new List<string> { "Option 1", "Option 2" });
|
||||
dropdown.SelectedIndex = 0;
|
||||
dropdown.IsEnabled = false;
|
||||
disabledRow.Add(dropdown);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// 기본 사용법
|
||||
var dropdown = new UTKDropdown(""Select Option"");
|
||||
dropdown.SetOptions(new List<string> { ""Option 1"", ""Option 2"", ""Option 3"", ""Option 4"" });
|
||||
dropdown.SelectedIndex = 0;
|
||||
|
||||
// 선택 이벤트
|
||||
dropdown.OnSelectionChanged += (index) =>
|
||||
{
|
||||
Debug.Log($""선택된 인덱스: {index}"");
|
||||
};
|
||||
|
||||
// 선택된 값 가져오기
|
||||
var selectedIndex = dropdown.SelectedIndex;
|
||||
var selectedValue = dropdown.SelectedValue;
|
||||
|
||||
// 옵션 동적 변경
|
||||
dropdown.SetOptions(new List<string> { ""New 1"", ""New 2"", ""New 3"" });
|
||||
|
||||
// 프로그램으로 선택
|
||||
dropdown.SelectedIndex = 2;
|
||||
|
||||
// Disabled
|
||||
var disabledDropdown = new UTKDropdown(""Disabled"");
|
||||
disabledDropdown.SetOptions(new List<string> { ""Option 1"", ""Option 2"" });
|
||||
disabledDropdown.SelectedIndex = 0;
|
||||
disabledDropdown.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- UTKDropdown은 동적 생성 권장 -->
|
||||
<!-- C# 코드에서 SetOptions로 옵션 설정 -->
|
||||
|
||||
<!-- 기본 드롭다운 -->
|
||||
<utk:UTKDropdown name=""dropdown-1"" text=""Select Option"" />
|
||||
|
||||
<!-- Disabled -->
|
||||
<utk:UTKDropdown name=""dropdown-2"" text=""Disabled"" is-enabled=""false"" />");
|
||||
}
|
||||
|
||||
private enum SampleEnum { Option1, Option2, Option3 }
|
||||
|
||||
private void InitializeEnumDropDownSample(VisualElement root)
|
||||
{
|
||||
var enumRow = root.Q<VisualElement>("enum-dropdown-row");
|
||||
if (enumRow != null)
|
||||
{
|
||||
var field = new UTKEnumDropDown("Choice", SampleEnum.Option1);
|
||||
enumRow.Add(field);
|
||||
}
|
||||
|
||||
SetCodeSamples(root,
|
||||
csharpCode: @"// Enum 정의
|
||||
public enum SampleEnum { Option1, Option2, Option3 }
|
||||
|
||||
// 기본 사용법
|
||||
var enumField = new UTKEnumDropDown(""Choice"", SampleEnum.Option1);
|
||||
|
||||
// 값 변경 이벤트
|
||||
enumField.OnValueChanged += (newValue) =>
|
||||
{
|
||||
Debug.Log($""선택된 값: {newValue}"");
|
||||
};
|
||||
|
||||
// 현재 선택된 값 가져오기
|
||||
var currentValue = enumField.Value;
|
||||
|
||||
// 프로그램으로 값 변경
|
||||
enumField.Value = SampleEnum.Option2;
|
||||
|
||||
// Disabled
|
||||
enumField.IsEnabled = false;",
|
||||
uxmlCode: @"<!-- UTKEnumDropDown은 동적 생성 권장 -->
|
||||
<!-- C# 코드에서 enum 타입과 초기값 지정 -->
|
||||
|
||||
<!-- 기본 Enum 드롭다운 -->
|
||||
<utk:UTKEnumDropDown name=""enum-dropdown-1"" label=""Choice"" />
|
||||
|
||||
<!-- Disabled -->
|
||||
<utk:UTKEnumDropDown name=""enum-dropdown-2"" label=""Choice"" is-enabled=""false"" />");
|
||||
}
|
||||
|
||||
#endregion
|
||||
}
|
||||
Reference in New Issue
Block a user