问题描述:
在unity脚本的OnEnable中用代码设置Toggle集合中的其中一个对象的ison时,发现并没有根据设置发生变化。但是该Toggle的OnValueChange却发生过变化。
如果使用协程等待0.01s,那么对应组件的ison的修改才能生效,但是逐帧分析的话会发现可以看到被切换前的残影。
问题分析:
ToggleGroup 组件的参数 allowSwitchOff为false时组件在每次显示时会有初始化的操作
该操作和我们在Enable中的修改发生了冲突。
所以在我们进行初始化时将allowSwitchOff参数修改为true,即可避免上述问题
void InitTogToFirst()
{
var tg = Togs.GetComponent<ToggleGroup>();
tg.allowSwitchOff = true;
for (int i = 0; i < Toggles.Count; i++)
{
Toggles[i].isOn = false;
}
Toggles[0].isOn = true;
tg.allowSwitchOff = false;
}