static void AddExposedVariablesRecursively(this GraphicalUiElement graphicalElement, ElementSave elementSave) { if (!string.IsNullOrEmpty(elementSave.BaseType)) { var baseElementSave = Gum.Managers.ObjectFinder.Self.GetElementSave(elementSave.BaseType); if (baseElementSave != null) { graphicalElement.AddExposedVariablesRecursively(baseElementSave); } } if (elementSave != null) { foreach (var variable in elementSave.DefaultState.Variables.Where(item => !string.IsNullOrEmpty(item.ExposedAsName))) { graphicalElement.AddExposedVariable(variable.ExposedAsName, variable.Name); } } }