上次发布的比较仓促然后,后面运行项目实际测试时还是有问题,如果是toggle物体在隐藏状态下选中无法更新togglegroup中toggle的。
下面对这种情况进行补充
问题原因分析:
经过分析源码发现是这句里的判断造成的 由于无法修改源码只能添加自定义方法接口实现修改toggle组件的选中状态同时修改所属group中所有toggle的状态。
完整代码补充:
using UnityEngine;
using UnityEngine.UI;
public class MToggle : Toggle
{
protected override void OnDisable()
{
base.OnDisable();
if (group != null)
{
group.RegisterToggle(this);
}
}
protected override void OnDestroy()
{
if (group != null)
{
group.UnregisterToggle(this);
}
base.OnDestroy();
}
public void SetIsOn(bool value)
{
if (isOn != value)
{
isOn = value;
if (!IsActive())
{
if (isOn)
{
if(group != null)
{
group.RegisterToggle(this);
group.NotifyToggleOn(this);
}
}
}
}
}
}