/*This script has been, partially or completely, generated by the Fungus.GenerateVariableWindow*/ using UnityEngine; namespace Fungus { // /// Get or Set a property of a AudioSource component /// [CommandInfo("Property", "AudioSource", "Get or Set a property of a AudioSource component")] [AddComponentMenu("")] public class AudioSourceProperty : BaseVariableProperty { //generated property public enum Property { Volume, Pitch, Time, TimeSamples, IsPlaying, IsVirtual, Loop, IgnoreListenerVolume, PlayOnAwake, IgnoreListenerPause, PanStereo, SpatialBlend, Spatialize, SpatializePostEffects, ReverbZoneMix, BypassEffects, BypassListenerEffects, BypassReverbZones, DopplerLevel, Spread, Priority, Mute, MinDistance, MaxDistance, } [SerializeField] protected Property property; [SerializeField] [VariableProperty(typeof(AudioSourceVariable))] protected AudioSourceVariable audioSourceVar; [SerializeField] [VariableProperty(typeof(FloatVariable), typeof(IntegerVariable), typeof(BooleanVariable))] protected Variable inOutVar; public override void OnEnter() { var iof = inOutVar as FloatVariable; var ioi = inOutVar as IntegerVariable; var iob = inOutVar as BooleanVariable; var target = audioSourceVar.Value; switch (getOrSet) { case GetSet.Get: switch (property) { case Property.Volume: iof.Value = target.volume; break; case Property.Pitch: iof.Value = target.pitch; break; case Property.Time: iof.Value = target.time; break; case Property.TimeSamples: ioi.Value = target.timeSamples; break; case Property.IsPlaying: iob.Value = target.isPlaying; break; case Property.IsVirtual: iob.Value = target.isVirtual; break; case Property.Loop: iob.Value = target.loop; break; case Property.IgnoreListenerVolume: iob.Value = target.ignoreListenerVolume; break; case Property.PlayOnAwake: iob.Value = target.playOnAwake; break; case Property.IgnoreListenerPause: iob.Value = target.ignoreListenerPause; break; case Property.PanStereo: iof.Value = target.panStereo; break; case Property.SpatialBlend: iof.Value = target.spatialBlend; break; case Property.Spatialize: iob.Value = target.spatialize; break; case Property.SpatializePostEffects: iob.Value = target.spatializePostEffects; break; case Property.ReverbZoneMix: iof.Value = target.reverbZoneMix; break; case Property.BypassEffects: iob.Value = target.bypassEffects; break; case Property.BypassListenerEffects: iob.Value = target.bypassListenerEffects; break; case Property.BypassReverbZones: iob.Value = target.bypassReverbZones; break; case Property.DopplerLevel: iof.Value = target.dopplerLevel; break; case Property.Spread: iof.Value = target.spread; break; case Property.Priority: ioi.Value = target.priority; break; case Property.Mute: iob.Value = target.mute; break; case Property.MinDistance: iof.Value = target.minDistance; break; case Property.MaxDistance: iof.Value = target.maxDistance; break; default: Debug.Log("Unsupported get or set attempted"); break; } break; case GetSet.Set: switch (property) { case Property.Volume: target.volume = iof.Value; break; case Property.Pitch: target.pitch = iof.Value; break; case Property.Time: target.time = iof.Value; break; case Property.TimeSamples: target.timeSamples = ioi.Value; break; case Property.Loop: target.loop = iob.Value; break; case Property.IgnoreListenerVolume: target.ignoreListenerVolume = iob.Value; break; case Property.PlayOnAwake: target.playOnAwake = iob.Value; break; case Property.IgnoreListenerPause: target.ignoreListenerPause = iob.Value; break; case Property.PanStereo: target.panStereo = iof.Value; break; case Property.SpatialBlend: target.spatialBlend = iof.Value; break; case Property.Spatialize: target.spatialize = iob.Value; break; case Property.SpatializePostEffects: target.spatializePostEffects = iob.Value; break; case Property.ReverbZoneMix: target.reverbZoneMix = iof.Value; break; case Property.BypassEffects: target.bypassEffects = iob.Value; break; case Property.BypassListenerEffects: target.bypassListenerEffects = iob.Value; break; case Property.BypassReverbZones: target.bypassReverbZones = iob.Value; break; case Property.DopplerLevel: target.dopplerLevel = iof.Value; break; case Property.Spread: target.spread = iof.Value; break; case Property.Priority: target.priority = ioi.Value; break; case Property.Mute: target.mute = iob.Value; break; case Property.MinDistance: target.minDistance = iof.Value; break; case Property.MaxDistance: target.maxDistance = iof.Value; break; default: Debug.Log("Unsupported get or set attempted"); break; } break; default: break; } Continue(); } public override string GetSummary() { if (audioSourceVar == null) { return "Error: no audioSourceVar set"; } if (inOutVar == null) { return "Error: no variable set to push or pull data to or from"; } return getOrSet.ToString() + " " + property.ToString(); } public override Color GetButtonColor() { return new Color32(235, 191, 217, 255); } public override bool HasReference(Variable variable) { if (audioSourceVar == variable || inOutVar == variable) return true; return false; } } }