public static void SetTarget(GUIFloat target) { GUIUtility.ActiveControl = target; GUIUtility.ControlModal = target; // set toggles to the state of the float bool isOsc = target.routingType == RoutingType.Oscillator; m_saw.Enabled = isOsc && target.oscillatorType == OscillatorType.Saw; m_sine.Enabled = isOsc && target.oscillatorType == OscillatorType.Sine; m_square.Enabled = isOsc && target.oscillatorType == OscillatorType.Square; m_lowButton.Enabled = target.routingType == RoutingType.AudioLow; m_midButton.Enabled = target.routingType == RoutingType.AudioBypass; m_highButton.Enabled = target.routingType == RoutingType.AudioHigh; m_1.Enabled = isOsc && target.oscillatorFrequency == 1; m_2.Enabled = isOsc && target.oscillatorFrequency == 2; m_4.Enabled = isOsc && target.oscillatorFrequency == 4; m_8.Enabled = isOsc && target.oscillatorFrequency == 8; m_16.Enabled = isOsc && target.oscillatorFrequency == 16; m_lerp.value = target.lerp; m_duty.value = target.duty; m_power.value = target.power; }
public override void InitInternal() { m_effect = GetComponent <VisualEffect>(); m_name = "VFX." + m_effect.name; List <VFXExposedProperty> exposedProperties = new List <VFXExposedProperty>(); m_effect.visualEffectAsset.GetExposedProperties(exposedProperties); foreach (var prop in exposedProperties) { if (prop.type == typeof(float)) { var row = new GUIRow(); var p = new GUIFloat(prop.name, 0, 1, 0.5f, delegate(float v) { m_effect.SetFloat(prop.name, v); }); row.Items.Add(p); Parameters.Add(p); GUIRows.Add(row); } } }
public override void InitInternal() { RoutingServer.m_bass = m_bassLevel; RoutingServer.m_treble = m_trebleLevel; RoutingServer.m_bypass = m_level; RoutingServer.m_beat = m_beatDetect; m_beatTexture = new Texture2D(256, 64, UnityEngine.Experimental.Rendering.DefaultFormat.LDR, UnityEngine.Experimental.Rendering.TextureCreationFlags.None); m_levelTexture = new Texture2D(256, 64, UnityEngine.Experimental.Rendering.DefaultFormat.LDR, UnityEngine.Experimental.Rendering.TextureCreationFlags.None); var row = new GUIRow(); var rangeSlider = new GUIFloat("dynamic range", 1f, 50f, 25f, delegate(float v) { m_level.dynamicRange = v; m_analyzer.dynamicRange = v; }); Parameters.Add(rangeSlider); row.Items.Add(rangeSlider); GUIRows.Add(row); row = new GUIRow(); row.Items.Add(new GUITexture(m_beatTexture)); GUIRows.Add(row); row = new GUIRow(); row.Items.Add(new GUITexture(m_levelTexture)); GUIRows.Add(row); }
private void AddParameters <T>(PostProcessProfile profile) where T : PostProcessEffectSettings { foreach (var effect in profile.settings) { var effectName = effect.GetType().Name; var cast = effect as T; if (cast != null) { foreach (var thisVar in cast.GetType().GetFields()) { UnityEngine.Rendering.PostProcessing.FloatParameter item = thisVar.GetValue(cast) as UnityEngine.Rendering.PostProcessing.FloatParameter; if (item != null) { var row = new GUIRow(); var parameter = new GUIFloat(effectName + "." + thisVar.Name, 0, 1, 0, delegate(float v) { item.value = v; }); Parameters.Add(parameter); row.Items.Add(parameter); GUIRows.Add(row); } } // add some spacing GUIRows.Add(new GUIRow()); } } }
public static void DrawGUI() { target = GUIUtility.ControlModal as GUIFloat; if (target == null) { Debug.LogError("Can't do modal for non-float parameter"); return; } var rect = GetWindowRect(target.currentRect); if (Event.current.button == 0 && !GetWindowRect(rect).Contains(Event.current.mousePosition)) { Close(); return; } GUI.DrawTexture(rect, GUIUtility.BlackTexture); rect.x = rect.xMax; rect.width = 10; float normVal = (target.value - target.min) / (target.max - target.min); rect.y += rect.height * (1 - normVal); rect.height *= normVal; GUI.DrawTexture(rect, GUIUtility.GreenTexture); rect = GetWindowRect(target.currentRect); rect.height = ROW_HEIGHT; for (int i = 0; i < rows.Count; i++) { rows[i].DrawGUI(rect); rect.y += rect.height; } }
public static void Init() { rows.Clear(); var row = new GUIRow(); m_lowButton = new GUIToggle("low", delegate { target.routingType = RoutingType.AudioLow; }); row.Items.Add(m_lowButton); m_midButton = new GUIToggle("all", delegate { target.routingType = RoutingType.AudioBypass; }); row.Items.Add(m_midButton); m_highButton = new GUIToggle("high", delegate { target.routingType = RoutingType.AudioHigh; }); row.Items.Add(m_highButton); rows.Add(row); row = new GUIRow(); row.Items.Add(new GUITrigger("clear", delegate { target.routingType = RoutingType.None; target.ResetToDefault(); Close(); })); rows.Add(row); row = new GUIRow(); m_saw = new GUIToggle("saw", delegate { target.routingType = RoutingType.Oscillator; target.oscillatorType = OscillatorType.Saw; }); m_square = new GUIToggle("square", delegate { target.routingType = RoutingType.Oscillator; target.oscillatorType = OscillatorType.Square; }); m_sine = new GUIToggle("sin", delegate { target.routingType = RoutingType.Oscillator; target.oscillatorType = OscillatorType.Sine; }); row.Items.Add(m_saw); row.Items.Add(m_square); row.Items.Add(m_sine); rows.Add(row); row = new GUIRow(); m_1 = new GUIToggle("1", delegate { target.oscillatorFrequency = 1; }); m_2 = new GUIToggle("2", delegate { target.oscillatorFrequency = 2; }); m_4 = new GUIToggle("4", delegate { target.oscillatorFrequency = 4; }); m_8 = new GUIToggle("8", delegate { target.oscillatorFrequency = 8; }); m_16 = new GUIToggle("16", delegate { target.oscillatorFrequency = 16; }); row.Items.Add(m_1); row.Items.Add(m_2); row.Items.Add(m_4); row.Items.Add(m_8); row.Items.Add(m_16); rows.Add(row); row = new GUIRow(); m_lerp = new GUIFloat("lerp", 0, 1, 0.9f, delegate(float v) { target.lerp = v; }); row.Items.Add(m_lerp); rows.Add(row); row = new GUIRow(); m_duty = new GUIFloat("duty", 0, 1, 0.9f, delegate(float v) { target.duty = v; }); row.Items.Add(m_duty); rows.Add(row); row = new GUIRow(); m_power = new GUIFloat("power", 0, 2, 1f, delegate(float v) { target.power = v; }); row.Items.Add(m_power); rows.Add(row); }
public static void Close() { GUIUtility.ControlModal = null; target = null; }