Unity3D - 如何在 DropDown 中更改 ItemLabel 的颜色
Unity3D - How to change color for ItemLabel in DropDown
我在 Unity 中使用 DropDown 元素,
在我的代码中,如果不满足要求,我会禁用一些选择:
var toogles = dropDownList.GetComponentsInChildren<Toggle>(true);
toogles[index].interactable = enable;
我还想为禁用的切换更改 ItemLabel 文本的颜色,
我试过了:
var mylabel = dropDownList.GetComponentsInChildren<Text>(true);
mylabel[index].color = Color.red;
但不起作用,我需要以某种方式将该 ItemLabel 存储在在 Dropdown/Template/Item/ItemLabel
下创建的变量中
我尝试创建一个 public Text
,我在其中拖放了在模板下创建的 ItemLabel,但由于它不是创建的确切文本,它只是一个模板,所以没有用。
有人知道如何访问 DropDown 的 ItemLabel 吗?
编辑:
我走到这一步:
if(toogles[i].interactable == false)
{
_dropdown.itemText.color = Color.red;
}
但不知道如何添加索引,所以只有部分项目会是红色
我能够使用以下代码找到并遍历 itemLabels:
var myLabels = GameObject.FindGameObjectsWithTag("ItemLabel");
var objectCount = myLabels.Length;
Debug.Log("Object count:" + objectCount);
Text[] myItemLabels = new Text[6];
int k = 0;
foreach (var obj in myLabels)
{
myItemLabels[k] = obj.GetComponent<Text>();
k++;
}
我在 Unity 中使用 DropDown 元素, 在我的代码中,如果不满足要求,我会禁用一些选择:
var toogles = dropDownList.GetComponentsInChildren<Toggle>(true);
toogles[index].interactable = enable;
我还想为禁用的切换更改 ItemLabel 文本的颜色, 我试过了:
var mylabel = dropDownList.GetComponentsInChildren<Text>(true);
mylabel[index].color = Color.red;
但不起作用,我需要以某种方式将该 ItemLabel 存储在在 Dropdown/Template/Item/ItemLabel
下创建的变量中我尝试创建一个 public Text
,我在其中拖放了在模板下创建的 ItemLabel,但由于它不是创建的确切文本,它只是一个模板,所以没有用。
有人知道如何访问 DropDown 的 ItemLabel 吗?
编辑:
我走到这一步:
if(toogles[i].interactable == false)
{
_dropdown.itemText.color = Color.red;
}
但不知道如何添加索引,所以只有部分项目会是红色
我能够使用以下代码找到并遍历 itemLabels:
var myLabels = GameObject.FindGameObjectsWithTag("ItemLabel");
var objectCount = myLabels.Length;
Debug.Log("Object count:" + objectCount);
Text[] myItemLabels = new Text[6];
int k = 0;
foreach (var obj in myLabels)
{
myItemLabels[k] = obj.GetComponent<Text>();
k++;
}