// 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++; } }
public void Register(TweakableVariable <float> variable) { GameObject variableViewObject = Instantiate(Resources.Load("DT/TweakableVariables/TweakableVariableView")) as GameObject; TweakableVariableView view = variableViewObject.GetComponent <TweakableVariableView>(); view.SetupWithModel(variable); variableViewObject.transform.SetParent(CanvasTransform, false); variableViewObject.SetActive(false); VariableUIMap.Add(variable, variableViewObject); }