UTKProperyItem 수정 중
This commit is contained in:
@@ -80,6 +80,12 @@ namespace UVC.Sample.UIToolkit
|
||||
_propertyWindow.OnPropertyValueChanged += args =>
|
||||
{
|
||||
Debug.Log($"Property Changed: {args.PropertyId} {args.PropertyName} ({args.PropertyType}) = {args.NewValue}");
|
||||
|
||||
// gap_type 변경 시 해당 분포 속성만 표시
|
||||
if (args.PropertyId == "gap_type" && args.NewValue is string gapType)
|
||||
{
|
||||
UpdateGapVisibility(gapType);
|
||||
}
|
||||
};
|
||||
|
||||
_propertyWindow.OnPropertyClicked += args =>
|
||||
@@ -134,14 +140,8 @@ namespace UVC.Sample.UIToolkit
|
||||
// Bool (편집 가능)
|
||||
entries.Add(new UTKBoolPropertyItem("bool", "Bool", true));
|
||||
|
||||
// Bool (ShowLabel = false)
|
||||
var boolNoLabel = new UTKBoolPropertyItem("bool_no_label", "No Label Bool", false);
|
||||
boolNoLabel.ShowLabel = false;
|
||||
entries.Add(boolNoLabel);
|
||||
|
||||
// Bool (읽기 전용)
|
||||
var roBool = new UTKBoolPropertyItem("bool_ro", "Bool (RO)", true);
|
||||
roBool.IsReadOnly = true;
|
||||
var roBool = new UTKBoolPropertyItem("bool_ro", "Bool (RO)", true, true);
|
||||
entries.Add(roBool);
|
||||
|
||||
// Int (편집 가능)
|
||||
@@ -312,13 +312,52 @@ namespace UVC.Sample.UIToolkit
|
||||
|
||||
// FloatRange (편집 가능)
|
||||
entries.Add(new UTKFloatRangePropertyItem("floatrange", "FloatRange", 1.5f, 8.5f));
|
||||
|
||||
|
||||
// FloatRange (읽기 전용)
|
||||
var roFloatRange = new UTKFloatRangePropertyItem("floatrange_ro", "FloatRange (RO)", 2.5f, 7.5f);
|
||||
roFloatRange.IsReadOnly = true;
|
||||
entries.Add(roFloatRange);
|
||||
|
||||
// FloatRange Stepper (편집 가능)
|
||||
entries.Add(new UTKFloatRangePropertyItem("floatrange2", "FloatRange Stepper", 1.5f, 8.5f, stepperStep: 0.5f, stepperMinValue: 0f, stepperMaxValue: 100f, useStepper: true));
|
||||
|
||||
// FloatRange Stepper (읽기 전용)
|
||||
entries.Add(new UTKFloatRangePropertyItem("floatrange2_ro", "FloatRange Stepper (RO)", 2.5f, 7.5f, stepperStep: 0.5f, stepperMinValue: 0f, stepperMaxValue: 100f, useStepper: true, isReadOnly: true));
|
||||
|
||||
// FloatDropdown (FloatField + Dropdown)
|
||||
entries.Add(new UTKFloatDropdownPropertyItem("floatdropdown1", "FloatDropdown",
|
||||
1.5f, new List<string> { "mm", "cm", "m", "km" }, "cm"));
|
||||
|
||||
// FloatDropdown (Stepper + Dropdown)
|
||||
entries.Add(new UTKFloatDropdownPropertyItem("floatdropdown2", "FloatDropdown Stepper",
|
||||
10.0f, new List<string> { "mm", "cm", "m", "km" }, "m",
|
||||
floatMinValue: 0f, floatMaxValue: 1000f, stepperStep: 0.5f, useStepper: true));
|
||||
|
||||
// FloatDropdown (읽기 전용)
|
||||
entries.Add(new UTKFloatDropdownPropertyItem("floatdropdown_ro", "FloatDropdown (RO)",
|
||||
5.0f, new List<string> { "mm", "cm", "m", "km" }, "km", isReadOnly: true));
|
||||
|
||||
// ===== Group에 속한 아이템들 =====
|
||||
var timeList = new List<string> { "초(sec)", "분(min)", "시간(hour)" };
|
||||
var gapGroup = new UTKPropertyGroup("gap", "생산 간격 정책");
|
||||
gapGroup.AddItem(new UTKDropdownPropertyItem("gap_type", "간격 타입",
|
||||
new List<string> { "상수", "정규 분포", "균등 분포", "지수 분포", "삼각 분포" }, "상수", showLabel: false));
|
||||
//상수
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_value", "상수", 1.0f, timeList, "초(sec)"));
|
||||
//정규 분포
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_normal_mean", "정규 분포 평균치", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_normal_stddev", "정규 분포 표준 편차", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
//균등 분포
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_uniform_min", "균등 분포 최소값", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_uniform_max", "균등 분포 최대값", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
//지수 분포
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_exponential", "지수 분포 평균치", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
//삼각 분포
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_triangular_min", "삼각 분포 최소값", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_triangular_mode", "삼각 분포 최빈값", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
gapGroup.AddItem(new UTKFloatDropdownPropertyItem("gap_triangular_max", "삼각 분포 최대값", 1.0f, timeList, "초(sec)"){ IsVisible = false });
|
||||
entries.Add(gapGroup);
|
||||
|
||||
|
||||
// 기본 속성 그룹 (편집 가능)
|
||||
var basicGroup = new UTKPropertyGroup("basic", "Basic Properties (Editable)");
|
||||
@@ -549,6 +588,30 @@ namespace UVC.Sample.UIToolkit
|
||||
return entries;
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// gap_type 값에 따라 해당 분포 속성의 가시성을 전환합니다.
|
||||
/// </summary>
|
||||
private void UpdateGapVisibility(string gapType)
|
||||
{
|
||||
_propertyWindow.SetPropertyVisibilityBatch(new (string, bool)[]
|
||||
{
|
||||
// 상수
|
||||
("gap_value", gapType == "상수"),
|
||||
// 정규 분포
|
||||
("gap_normal_mean", gapType == "정규 분포"),
|
||||
("gap_normal_stddev", gapType == "정규 분포"),
|
||||
// 균등 분포
|
||||
("gap_uniform_min", gapType == "균등 분포"),
|
||||
("gap_uniform_max", gapType == "균등 분포"),
|
||||
// 지수 분포
|
||||
("gap_exponential", gapType == "지수 분포"),
|
||||
// 삼각 분포
|
||||
("gap_triangular_min", gapType == "삼각 분포"),
|
||||
("gap_triangular_mode", gapType == "삼각 분포"),
|
||||
("gap_triangular_max", gapType == "삼각 분포"),
|
||||
});
|
||||
}
|
||||
|
||||
private void OnDestroy()
|
||||
{
|
||||
_propertyWindow?.Dispose();
|
||||
|
||||
Reference in New Issue
Block a user