// Start is called before the first frame update void Start() { instance = this; avfxs.ClearOptions(); CheckMicrophones(); if (parameters.Count == 0) { return; } List <string> options = new List <string>(); foreach (var obj in parameters) { options.Add(obj.Key.name); foreach (var parameter in obj.Value) { parameter.label = GameObject.Instantiate(labelPrefab, ObjectCanvas.transform); parameter.Slider = GameObject.Instantiate(sliderPrefab, ObjectCanvas.transform); parameter.Enabled = false; } } avfxs.AddOptions(options); avfxs.onValueChanged.AddListener(Refresh); lastObj = parameters.Keys.First(); Refresh(0); }
private void Refresh(int index) { var v = parameters.Keys.ToArray()[index]; foreach (var p in parameters[lastObj]) { p.Enabled = false; } foreach (var p in parameters[v]) { p.Enabled = true; } lastObj = v; }
public void AddParameter(AudioVisualEffect effect, Parameter param) { if (parameters.ContainsKey(effect)) { parameters[effect].Add(param); } else { parameters[effect] = new List <Parameter>() { param } }; }