Unity3D-如何在下拉菜单中更改ItemLabel的颜色



我在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++;
}

相关内容

  • 没有找到相关文章

最新更新