Files
Studio/Assets/NewStudioJYM/Scripts/UI_EventParameterItem.cs
2025-05-12 08:35:29 +09:00

72 lines
2.3 KiB
C#

using UnityEngine;
using XRLib.UI;
using TMPro;
using System.Collections.Generic;
using System.Linq;
using System;
namespace XED
{
public class UI_EventParameterItem : UIBase
{
private TMP_Dropdown Dropdown_EventType;
private TMP_Dropdown Dropdown_Parameters;
private Dictionary<string, List<string>> eventTypes = new Dictionary<string, List<string>>();
public void SetItem(Dictionary<string, List<string>> eventTypes)
{
this.eventTypes = eventTypes;
SetEventTypeDropdown(eventTypes.Keys.ToList());
}
public void SetItem(EventParameter parameter, Dictionary<string, List<string>> eventTypes)
{
this.eventTypes = eventTypes;
SetEventTypeDropdown(eventTypes.Keys.ToList());
for (int i = 0; i < Dropdown_EventType.options.Count; i++)
{
if (Dropdown_EventType.options[i].text == parameter.eventType)
{
Dropdown_EventType.value = i;
}
}
for (int i = 0; i < Dropdown_Parameters.options.Count; i++)
{
if (Dropdown_Parameters.options[i].text == parameter.parameter)
{
Dropdown_Parameters.value = i;
}
}
}
private void SetEventTypeDropdown(List<string> eventTypes)
{
Dropdown_EventType.ClearOptions();
Dropdown_EventType.AddOptions(eventTypes);
Dropdown_EventType.onValueChanged.AddListener(OnEventTypeChanged);
OnEventTypeChanged(0);
}
void OnEventTypeChanged(int typeIndex)
{
string selectedType = Dropdown_EventType.options[typeIndex].text;
var parameters = eventTypes[selectedType];
Dropdown_Parameters.ClearOptions();
Dropdown_Parameters.AddOptions(parameters);
}
public EventParameter GetParametersData()
{
var eventParameter = new EventParameter();
eventParameter.eventType = Dropdown_EventType.options[Dropdown_EventType.value].text;
eventParameter.parameter = Dropdown_Parameters.options[Dropdown_Parameters.value].text;
return eventParameter;
}
}
}