100 lines
2.9 KiB
C#
100 lines
2.9 KiB
C#
using UnityEngine;
|
|
using XRLib.UI;
|
|
using TMPro;
|
|
using UnityEngine.UI;
|
|
using Newtonsoft.Json;
|
|
using System.Collections.Generic;
|
|
using System;
|
|
|
|
namespace XED
|
|
{
|
|
public class UI_DynamicObjectItem : UIBase
|
|
{
|
|
private TMP_Dropdown Dropdown_Data;
|
|
private Button Button_SelectModel;
|
|
private TMP_Dropdown Dropdown_Model;
|
|
private Button Button_UISetting;
|
|
|
|
public DynamicObjectDatas dynamicObjectDatas;
|
|
public DataList selectDynamicObjectData;
|
|
|
|
public ModelList modelList;
|
|
public string selectedModel;
|
|
|
|
public Action<DataList, RectTransform> onUISetting;
|
|
|
|
|
|
public void SetData(DynamicObjectDatas dynamicObjectDatas, ModelList modelList)
|
|
{
|
|
this.dynamicObjectDatas = dynamicObjectDatas;
|
|
this.modelList = modelList;
|
|
|
|
SetDataDropdown();
|
|
SetModelDropdown();
|
|
|
|
Button_SelectModel.onClick.AddListener(OnClickSelectModelButton);
|
|
Button_UISetting.onClick.AddListener(OnClickUISettingButton);
|
|
}
|
|
public bool IsDataDropdownChanged(TMP_Dropdown dropdown, int value)
|
|
{
|
|
return dropdown.value != value;
|
|
}
|
|
private void SetDataDropdown()
|
|
{
|
|
Dropdown_Data.ClearOptions();
|
|
List<string> options = new List<string>();
|
|
|
|
options.Add("Select URL");
|
|
|
|
foreach(var dynamicObjectData in dynamicObjectDatas.dataList)
|
|
{
|
|
options.Add(dynamicObjectData.name);
|
|
}
|
|
Dropdown_Data.AddOptions(options);
|
|
Dropdown_Data.onValueChanged.AddListener(OnDataValueChanged);
|
|
|
|
OnDataValueChanged(0);
|
|
}
|
|
private void OnDataValueChanged(int index)
|
|
{
|
|
if (index - 1 < 0)
|
|
return;
|
|
selectDynamicObjectData = dynamicObjectDatas.dataList[index - 1];
|
|
}
|
|
private void SetModelDropdown()
|
|
{
|
|
Dropdown_Model.ClearOptions();
|
|
List<string> options = new List<string>();
|
|
|
|
options.Add("Select Model");
|
|
|
|
foreach (var dynamicObjectData in modelList.modelList)
|
|
{
|
|
options.Add(dynamicObjectData.modelName);
|
|
}
|
|
Dropdown_Model.AddOptions(options);
|
|
Dropdown_Model.onValueChanged.AddListener(OnModelValueChanged);
|
|
|
|
OnModelValueChanged(0);
|
|
}
|
|
private void OnModelValueChanged(int index)
|
|
{
|
|
if (index - 1 < 0)
|
|
return;
|
|
|
|
selectedModel = modelList.modelList[index - 1].modelName;
|
|
}
|
|
private void OnClickSelectModelButton()
|
|
{
|
|
Dropdown_Model.Show();
|
|
}
|
|
private void OnClickUISettingButton()
|
|
{
|
|
if (selectDynamicObjectData != null && selectedModel != string.Empty)
|
|
{
|
|
onUISetting?.Invoke(selectDynamicObjectData, rectTransform);
|
|
}
|
|
}
|
|
}
|
|
}
|