Files
Studio/Assets/NewStudioJYM/Scripts/UI_DynamicObjectItem.cs
2025-05-14 10:45:36 +09:00

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);
}
}
}
}