예제 #1
0
파일: Settings.cs 프로젝트: sulai1/VFX
    // 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);
    }
예제 #2
0
파일: Settings.cs 프로젝트: sulai1/VFX
    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;
    }
예제 #3
0
파일: Settings.cs 프로젝트: sulai1/VFX
 public void AddParameter(AudioVisualEffect effect, Parameter param)
 {
     if (parameters.ContainsKey(effect))
     {
         parameters[effect].Add(param);
     }
     else
     {
         parameters[effect] = new List <Parameter>()
         {
             param
         }
     };
 }