-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathAudioSourceFlags.cs
More file actions
34 lines (31 loc) · 1.07 KB
/
Copy pathAudioSourceFlags.cs
File metadata and controls
34 lines (31 loc) · 1.07 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
using System;
using UnityEngine;
namespace Screenplay
{
[Flags]
public enum AudioSourceFlags
{
Loop = 0b000001,
Mute = 0b000010,
BypassEffects = 0b000100,
BypassListenerEffects = 0b001000,
BypassReverbZones = 0b010000,
PlayOnAwake = 0b100000,
}
public static class AudioSourceFlagsExtension
{
public static void Apply(this AudioSourceFlags flags, AudioSource source)
{
source.SetFlags(flags);
}
public static void SetFlags(this AudioSource source, AudioSourceFlags flags)
{
source.loop = (AudioSourceFlags.Loop & flags) != 0;
source.mute = (AudioSourceFlags.Mute & flags) != 0;
source.bypassEffects = (AudioSourceFlags.BypassEffects & flags) != 0;
source.bypassListenerEffects = (AudioSourceFlags.BypassListenerEffects & flags) != 0;
source.bypassReverbZones = (AudioSourceFlags.BypassReverbZones & flags) != 0;
source.playOnAwake = (AudioSourceFlags.PlayOnAwake & flags) != 0;
}
}
}