private void SetToggleGroup(GemToggleGroup newGroup, bool setMemberValue)
{
GemToggleGroup oldGroup = m_Group;
// Sometimes IsActive returns false in OnDisable so don't check for it.
// Rather remove the toggle too oftem than too little.
if (m_Group != null)
{
m_Group.UnregisterToggle(this);
}
// At runtime the group variable should be set but not when calling this method from OnEnable or OnDisable.
// That's why we use the setMemberValue parameter.
if (setMemberValue)
{
m_Group = newGroup;
}
// Only register to the new group if this Toggle is active.
if (m_Group != null && IsActive())
{
m_Group.RegisterToggle(this);
}
// If we are in a new group, and this toggle is on, notify group.
// Note: Don't refer to m_Group here as it's not guaranteed to have been set.
if (newGroup != null && newGroup != oldGroup && isOn && IsActive())
{
m_Group.NotifyToggleOn(this);
}
}