我在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 下创建的变量中
我试图创建一个CCD_ 1;删除了在模板下创建的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++;
}