// PRAGMA MARK - UI FUNCTIONS public void OnSearchValueUpdate(string searchString) { TweakableVariable <float>[] variables = VariableUIMap.Keys.ToArray(); Array.Sort(variables, delegate(TweakableVariable <float> var1, TweakableVariable <float> var2) { double distance1 = StringMatch.ComputeDistance(searchString, var1.Name); double distance2 = StringMatch.ComputeDistance(searchString, var2.Name); return(distance2.CompareTo(distance1)); }); int index = 0; foreach (TweakableVariable <float> variable in variables) { GameObject variableViewObject = VariableUIMap[variable]; bool active = index < MAX_VARIABLES_SHOWN; variableViewObject.SetActive(active); if (active) { TweakableVariableView variableView = variableViewObject.GetComponent <TweakableVariableView>(); Vector2 offset = new Vector2(0.0f, -index * variableView.Height); variableView.SetOffset(offset); } index++; } }