// These changes are to UIDesignerManager
// Create a Class Variable
protected bool m_tabChanged = true;
// Change the refresh method to this
public override void Refresh()
{
base.Refresh();
//In case it refreshes while the code is compiling stop before null exception.
if (m_Builders == null) { return; }
var result = IsSetupValid();
m_UIDesignerValidationResult = result;
var enable = result.validationState != UIDesignerSchema.ValidationState.HasErrors;
for (int i = 1; i < m_Builders.Count; i++) {
m_Toolbar.EnableButton(i, enable);
}
if (enable == false) {
m_Toolbar.Selected = 0;
m_Builders[0].Refresh();
ChangeTab(0);
return;
}
// Only refresh pages if the Tab has changed
if (!m_tabChanged) return;
m_tabChanged = false;
for (int i = 0; i < m_Builders.Count; i++) {
m_Builders[i].Refresh();
}
}
// Change ChangeTab method to
public void ChangeTab(int index)
{
m_Container.Clear();
if (index < 0 || index >= m_Builders.Count) { return; }
EditorPrefs.SetInt(UIBuilderTabIndexKey, index);
m_Container.Add(m_Builders[index]);
m_Builders[index].Refresh();
if (m_Toolbar.Selected != index) {
m_Toolbar.Selected = index;
m_tabChanged = true;
}
}