问题遇到的现象和发生背景
如图,比如我选中了Sword这个选项,我怎么在点击button之后将Sword这个名字传给另一个场景,使那个场景的一个Text变为Sword?确切的说,我该怎么得到当前下拉框中的值。
问题相关代码,请勿粘贴截图
public TMP_Dropdown NamesDropDown;
public TMP_Text Text;
IEnumerator GetData()
{
//从API上获得武器列表数据
string url = "https://example";
using(var request = UnityWebRequest.Get(url))
{
yield return request.SendWebRequest();
if (request.isHttpError || request.isNetworkError)
Debug.LogError(request.error);
else
{
string json = request.downloadHandler.text;
weaponsData = JsonUtility.FromJson<WeaponsData>(json);
}
}
//将武器数据的名字放入下拉菜单
if(weaponsData != null && weaponsData.Weapons.Count>0)
{
NamesDropDown.options.Clear();
foreach (var weapon in weaponsData.Weapons)
{
NamesDropDown.options.Add(new TMP_Dropdown.OptionData(weapon.Name));
}
NamesDropDown.value = 0;
//在下拉框下面的文本中显示下拉框中的值
DropdownSelected(NamesDropDown);
NamesDropDown.onValueChanged.AddListener(delegate{DropdownSelected(NamesDropDown);});
}
void DropdownSelected(TMP_Dropdown dropdown)
{
int index = dropdown.value;
Text.text = dropdown.options[index].text;
}
}
运行结果及报错内容
上面代码中, DropdownSelected方法确实能将定义的文本(Text)变为下拉框中的值
Text.text = dropdown.options[index].text;
但我不知道该怎么将这段代码得到的值作为参数传递出去。
所以我想问问有没有一个什么方法能直接获取到下拉框的值。