Files
Studio/Assets/NewStudioJYM/Scripts/UI_DynamicObjectUISettingItem.cs

83 lines
2.6 KiB
C#

using System.Collections.Generic;
using UnityEngine;
using XRLib.UI;
using UnityEngine.UI;
using TMPro;
using System;
namespace Studio
{
public enum UIDesignStyle
{
Sample1,
Sample2,
Sample3
}
public class UI_DynamicObjectUISettingItem : UIBase
{
private TextMeshProUGUI Text_ClassName;
private TMP_Dropdown Dropdown_UIDesignStyle;
private RectTransform DataContent;
private UI_DynamicDataStyleItem prf_DynamicDataStyleItem;
private List<UI_DynamicDataStyleItem> dynamicDataStyleItems = new List<UI_DynamicDataStyleItem>();
public List<DataList> dynamicObjectDatas = new List<DataList>();
public void SetData(DataList dynamicObjectDatas, UI_DynamicDataStyleItem dynamicDataStyleItem)
{
Text_ClassName.SetText(dynamicObjectDatas.name);
prf_DynamicDataStyleItem = dynamicDataStyleItem;
SetUIDesignStyleDropdown(dynamicObjectDatas);
SetDataItems(dynamicObjectDatas.datas);
}
private void SetUIDesignStyleDropdown(DataList dataList)
{
Dropdown_UIDesignStyle.ClearOptions();
var types = Enum.GetNames(typeof(UIDesignStyle));
List<string> options = new List<string>();
options.Add("Select Dashboard Style");
for (int i = 0; i < types.Length; i++)
{
options.Add(types[i]);
}
Dropdown_UIDesignStyle.AddOptions(options);
if (dataList.dashboardStyle != string.Empty)
{
Dropdown_UIDesignStyle.value = options.IndexOf(dataList.dashboardStyle);
}
}
private void SetDataItems(List<Datum> datas)
{
foreach(var item in dynamicDataStyleItems)
{
Destroy(item.gameObject);
}
dynamicDataStyleItems.Clear();
foreach(var data in datas)
{
var item = Instantiate(prf_DynamicDataStyleItem, DataContent);
item.SetData(data);
dynamicDataStyleItems.Add(item);
}
}
public DataList GetDataList()
{
DataList dataList = new DataList();
dataList.name = Text_ClassName.text;
dataList.dashboardStyle = Dropdown_UIDesignStyle.options[Dropdown_UIDesignStyle.value].text;
foreach (var dynamicDataStyleItem in dynamicDataStyleItems)
{
dataList.datas.Add(dynamicDataStyleItem.GetDatum());
}
return dataList;
}
}
}