From fad40e822cda178b8f3e0ce8db7bbee0dce52458 Mon Sep 17 00:00:00 2001 From: chrisgregan Date: Tue, 25 Aug 2015 13:21:15 +0100 Subject: [PATCH] WriterAudio can now play beep sounds per character --- Assets/Fungus/Narrative/Scripts/SayDialog.cs | 1 + Assets/Fungus/UI/Editor/WriterAudioEditor.cs | 61 +++++++ .../UI/Editor/WriterAudioEditor.cs.meta | 12 ++ Assets/Fungus/UI/Scripts/Writer.cs | 10 +- Assets/Fungus/UI/Scripts/WriterAudio.cs | 66 +++++-- Assets/Tests/Narrative/NarrativeTests.unity | 171 +++++++++++++++++- Assets/Tests/TestAssets/Audio/Beep1.wav | Bin 0 -> 14596 bytes Assets/Tests/TestAssets/Audio/Beep1.wav.meta | 22 +++ Assets/Tests/TestAssets/Audio/Beep2.wav | Bin 0 -> 15548 bytes Assets/Tests/TestAssets/Audio/Beep2.wav.meta | 22 +++ Assets/Tests/TestAssets/Audio/Beep3.wav | Bin 0 -> 14596 bytes Assets/Tests/TestAssets/Audio/Beep3.wav.meta | 22 +++ 12 files changed, 359 insertions(+), 28 deletions(-) create mode 100644 Assets/Fungus/UI/Editor/WriterAudioEditor.cs create mode 100644 Assets/Fungus/UI/Editor/WriterAudioEditor.cs.meta create mode 100644 Assets/Tests/TestAssets/Audio/Beep1.wav create mode 100644 Assets/Tests/TestAssets/Audio/Beep1.wav.meta create mode 100644 Assets/Tests/TestAssets/Audio/Beep2.wav create mode 100644 Assets/Tests/TestAssets/Audio/Beep2.wav.meta create mode 100644 Assets/Tests/TestAssets/Audio/Beep3.wav create mode 100644 Assets/Tests/TestAssets/Audio/Beep3.wav.meta diff --git a/Assets/Fungus/Narrative/Scripts/SayDialog.cs b/Assets/Fungus/Narrative/Scripts/SayDialog.cs index 15b05381..3b338f6f 100644 --- a/Assets/Fungus/Narrative/Scripts/SayDialog.cs +++ b/Assets/Fungus/Narrative/Scripts/SayDialog.cs @@ -187,6 +187,7 @@ namespace Fungus { nameText.text = ""; } + speakingCharacter = null; } else { diff --git a/Assets/Fungus/UI/Editor/WriterAudioEditor.cs b/Assets/Fungus/UI/Editor/WriterAudioEditor.cs new file mode 100644 index 00000000..559cf586 --- /dev/null +++ b/Assets/Fungus/UI/Editor/WriterAudioEditor.cs @@ -0,0 +1,61 @@ +using UnityEditor; +using UnityEditorInternal; +using UnityEngine; +using System.Collections; +using System.Collections.Generic; +using Rotorz.ReorderableList; + +namespace Fungus +{ + + [CustomEditor (typeof(WriterAudio))] + public class WriterAudioEditor : Editor + { + protected SerializedProperty volumeProp; + protected SerializedProperty loopProp; + protected SerializedProperty audioSourceProp; + protected SerializedProperty audioModeProp; + protected SerializedProperty beepSoundsProp; + protected SerializedProperty soundEffectProp; + protected SerializedProperty beepDelayProp; + protected SerializedProperty randomizeDelayProp; + + protected virtual void OnEnable() + { + volumeProp = serializedObject.FindProperty("volume"); + loopProp = serializedObject.FindProperty("loop"); + audioSourceProp = serializedObject.FindProperty("audioSource"); + audioModeProp = serializedObject.FindProperty("audioMode"); + beepSoundsProp = serializedObject.FindProperty("beepSounds"); + soundEffectProp = serializedObject.FindProperty("soundEffect"); + beepDelayProp = serializedObject.FindProperty("beepDelay"); + randomizeDelayProp = serializedObject.FindProperty("randomizeDelay"); + } + + public override void OnInspectorGUI() + { + serializedObject.Update(); + + EditorGUILayout.PropertyField(volumeProp); + EditorGUILayout.PropertyField(loopProp); + EditorGUILayout.PropertyField(audioSourceProp); + + EditorGUILayout.PropertyField(audioModeProp); + if ((WriterAudio.AudioMode)audioModeProp.enumValueIndex == WriterAudio.AudioMode.Beeps) + { + ReorderableListGUI.Title(new GUIContent("Beep Sounds", "A list of beep sounds to play at random")); + ReorderableListGUI.ListField(beepSoundsProp); + + EditorGUILayout.PropertyField(beepDelayProp); + EditorGUILayout.PropertyField(randomizeDelayProp); + } + else + { + EditorGUILayout.PropertyField(soundEffectProp); + } + + serializedObject.ApplyModifiedProperties(); + } + } + +} \ No newline at end of file diff --git a/Assets/Fungus/UI/Editor/WriterAudioEditor.cs.meta b/Assets/Fungus/UI/Editor/WriterAudioEditor.cs.meta new file mode 100644 index 00000000..bbbfed9f --- /dev/null +++ b/Assets/Fungus/UI/Editor/WriterAudioEditor.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: f07068d2254394c5d9367a7b738d8c86 +timeCreated: 1440497180 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Fungus/UI/Scripts/Writer.cs b/Assets/Fungus/UI/Scripts/Writer.cs index c9a8e9ee..fe10cd10 100644 --- a/Assets/Fungus/UI/Scripts/Writer.cs +++ b/Assets/Fungus/UI/Scripts/Writer.cs @@ -25,8 +25,8 @@ namespace Fungus // Called when the Writer has finshed writing text void OnEnd(); - // Called every time the Writer writes a character - void OnCharacter(); + // Called every time the Writer writes a new character glyph + void OnGlyph(); } public class Writer : MonoBehaviour, IDialogInputListener @@ -469,6 +469,8 @@ namespace Fungus PartitionString(writeWholeWords, param, i, out left, out right); text = ConcatenateString(startText, openText, closeText, left, right); + NotifyGlyph(); + // No delay if user has clicked if (inputFlag) { @@ -670,11 +672,11 @@ namespace Fungus } } - protected virtual void NotifyCharacter() + protected virtual void NotifyGlyph() { foreach (IWriterListener writerListener in writerListeners) { - writerListener.OnCharacter(); + writerListener.OnGlyph(); } } diff --git a/Assets/Fungus/UI/Scripts/WriterAudio.cs b/Assets/Fungus/UI/Scripts/WriterAudio.cs index 27ae834c..21248748 100644 --- a/Assets/Fungus/UI/Scripts/WriterAudio.cs +++ b/Assets/Fungus/UI/Scripts/WriterAudio.cs @@ -9,8 +9,15 @@ namespace Fungus */ public class WriterAudio : MonoBehaviour, IWriterListener { + [Tooltip("Volume level of writing sound effects")] + [Range(0,1)] + public float volume = 1f; + + [Tooltip("Loop the audio when in Sound Effect mode. Has no effect in Beeps mode.")] + public bool loop = true; + // If none is specifed then we use any AudioSource on the gameobject, and if that doesn't exist we create one. - [Tooltip("AudioSource to use for playing sound effects.")] + [Tooltip("AudioSource to use for playing sound effects. If none is selected then one will be created.")] public AudioSource audioSource; public enum AudioMode @@ -22,20 +29,21 @@ namespace Fungus [Tooltip("Type of sound effect to play when writing text")] public AudioMode audioMode = AudioMode.Beeps; - [Tooltip("List of beeps to randomly select when playing beep sound effects")] - public List beeps = new List(); + [Tooltip("List of beeps to randomly select when playing beep sound effects. Will play maximum of one beep per character, with only one beep playing at a time.")] + public List beepSounds = new List(); [Tooltip("Long playing sound effect to play when writing text")] public AudioClip soundEffect; - [Tooltip("Loop the sound effect")] - public bool loop = true; + protected float targetVolume = 0f; - [Tooltip("Volume level of writing sound effects")] - [Range(0,1)] - public float volume = 1f; + // When true, a beep will be played on every written character glyph + protected bool playBeeps; - protected float targetVolume = 0f; + public virtual void SetAudioMode(AudioMode mode) + { + audioMode = mode; + } protected virtual void Awake() { @@ -60,21 +68,31 @@ namespace Fungus return; } + audioSource.volume = 0f; + targetVolume = 1f; + if (audioClip != null) { + // Voice over clip provided audioSource.clip = audioClip; + audioSource.loop = loop; + audioSource.Play(); } - else + else if (audioMode == AudioMode.SoundEffect && + soundEffect != null) { + // Use sound effects defined in WriterAudio audioSource.clip = soundEffect; + audioSource.loop = loop; + audioSource.Play(); + } + else if (audioMode == AudioMode.Beeps) + { + // Use beeps defined in WriterAudio + audioSource.clip = null; + audioSource.loop = false; + playBeeps = true; } - - audioSource.loop = loop; - - audioSource.volume = 0f; - targetVolume = 1f; - - audioSource.Play(); } public virtual void Pause() @@ -99,6 +117,7 @@ namespace Fungus // looping and let the audio stop automatically at the end of the clip targetVolume = 0f; audioSource.loop = false; + playBeeps = false; } public virtual void Resume() @@ -137,11 +156,20 @@ namespace Fungus public virtual void OnEnd() { - Stop (); + Stop(); } - public virtual void OnCharacter() + public virtual void OnGlyph() { + if (playBeeps && beepSounds.Count > 0) + { + if (!audioSource.isPlaying) + { + audioSource.clip = beepSounds[Random.Range(0, beepSounds.Count - 1)]; + audioSource.loop = false; + audioSource.Play(); + } + } } } diff --git a/Assets/Tests/Narrative/NarrativeTests.unity b/Assets/Tests/Narrative/NarrativeTests.unity index 3678d540..ba1c4ce1 100644 --- a/Assets/Tests/Narrative/NarrativeTests.unity +++ b/Assets/Tests/Narrative/NarrativeTests.unity @@ -1057,6 +1057,7 @@ GameObject: - 114: {fileID: 594837302} - 114: {fileID: 594837303} - 114: {fileID: 594837304} + - 114: {fileID: 594837305} m_Layer: 0 m_Name: TestAssertions m_TagString: Untagged @@ -1181,6 +1182,27 @@ MonoBehaviour: checkMethods: 1 m_ActionBase: {fileID: 1613545005} checksPerformed: 0 +--- !u!114 &594837305 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 594837298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8bafa54482a87ac4cbd7ff1bfd1ac93a, type: 3} + m_Name: + m_EditorClassIdentifier: + checkAfterTime: 12.5 + repeatCheckTime: 0 + repeatEveryTime: 1 + checkAfterFrames: 1 + repeatCheckFrame: 1 + repeatEveryFrame: 1 + hasFailed: 0 + checkMethods: 1 + m_ActionBase: {fileID: 1216870120} + checksPerformed: 0 --- !u!1 &658513471 GameObject: m_ObjectHideFlags: 0 @@ -1295,6 +1317,10 @@ GameObject: - 114: {fileID: 736071361} - 114: {fileID: 736071364} - 114: {fileID: 736071363} + - 114: {fileID: 736071366} + - 114: {fileID: 736071365} + - 114: {fileID: 736071368} + - 114: {fileID: 736071367} m_Layer: 0 m_Name: Flowchart m_TagString: Untagged @@ -1370,6 +1396,8 @@ MonoBehaviour: - {fileID: 736071347} - {fileID: 736071352} - {fileID: 736071360} + - {fileID: 736071366} + - {fileID: 736071365} --- !u!114 &736071350 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1386,7 +1414,7 @@ MonoBehaviour: scrollPos: {x: 0, y: 0} variablesScrollPos: {x: 0, y: 0} variablesExpanded: 1 - blockViewHeight: 280 + blockViewHeight: 513 zoom: 1 scrollViewRect: serializedVersion: 2 @@ -1395,7 +1423,8 @@ MonoBehaviour: width: 1121 height: 870 selectedBlock: {fileID: 736071355} - selectedCommands: [] + selectedCommands: + - {fileID: 736071368} variables: [] description: stepPause: 0 @@ -1512,6 +1541,8 @@ MonoBehaviour: - {fileID: 736071361} - {fileID: 736071364} - {fileID: 736071363} + - {fileID: 736071368} + - {fileID: 736071367} --- !u!114 &736071356 MonoBehaviour: m_ObjectHideFlags: 0 @@ -1690,6 +1721,117 @@ MonoBehaviour: errorMessage: indentLevel: 0 duration: 2 +--- !u!114 &736071365 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 736071346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 15 + errorMessage: + indentLevel: 0 + storyText: Write some audio with beep sounds + description: + character: {fileID: 0} + portrait: {fileID: 0} + voiceOverClip: {fileID: 0} + showAlways: 1 + showCount: 1 + extendPrevious: 0 + fadeOut: 1 + waitForClick: 1 + setSayDialog: {fileID: 0} +--- !u!114 &736071366 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 736071346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 688e35811870d403f9e2b1ab2a699d98, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 14 + errorMessage: + indentLevel: 0 + targetObject: {fileID: 1714427702} + targetComponentAssemblyName: Fungus.WriterAudio, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + targetComponentFullname: UnityEngine.Component[] + targetComponentText: WriterAudio + targetMethod: SetAudioMode + targetMethodText: 'SetAudioMode (AudioMode): Void' + methodParameters: + - objValue: + typeAssemblyname: Fungus.WriterAudio+AudioMode, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + typeFullname: Fungus.WriterAudio+AudioMode + intValue: 0 + boolValue: 0 + floatValue: 0 + stringValue: + colorValue: {r: 0, g: 0, b: 0, a: 0} + gameObjectValue: {fileID: 0} + materialValue: {fileID: 0} + objectValue: {fileID: 0} + spriteValue: {fileID: 0} + textureValue: {fileID: 0} + vector2Value: {x: 0, y: 0} + vector3Value: {x: 0, y: 0, z: 0} + variableKey: + saveReturnValue: 0 + returnValueVariableKey: + returnValueType: System.Void + showInherited: 0 + callMode: 0 +--- !u!114 &736071367 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 736071346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 688e35811870d403f9e2b1ab2a699d98, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 17 + errorMessage: + indentLevel: 0 + targetObject: {fileID: 1714427702} + targetComponentAssemblyName: Fungus.DialogInput, Assembly-CSharp, Version=0.0.0.0, + Culture=neutral, PublicKeyToken=null + targetComponentFullname: UnityEngine.Component[] + targetComponentText: DialogInput + targetMethod: SetNextLineFlag + targetMethodText: 'SetNextLineFlag (): Void' + methodParameters: [] + saveReturnValue: 0 + returnValueVariableKey: + returnValueType: System.Void + showInherited: 0 + callMode: 0 +--- !u!114 &736071368 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 736071346} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 3315ad2ebb85443909a1203d56d9344e, type: 3} + m_Name: + m_EditorClassIdentifier: + itemId: 16 + errorMessage: + indentLevel: 0 + duration: 2 --- !u!1 &891159641 GameObject: m_ObjectHideFlags: 0 @@ -3023,6 +3165,23 @@ MonoBehaviour: otherPropertyPath: constantValueGeneric: 4 compareType: 0 +--- !u!114 &1216870120 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 2586c8e41f35d2f4fadde53020bf4207, type: 3} + m_Name: + m_EditorClassIdentifier: + go: {fileID: 1714427702} + thisPropertyPath: AudioSource.isPlaying + compareToType: 1 + other: {fileID: 0} + otherPropertyPath: + constantValueGeneric: 0 --- !u!114 &1300618896 MonoBehaviour: m_ObjectHideFlags: 0 @@ -3586,12 +3745,14 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: c4782cf42f2644447b9631f6e522160b, type: 3} m_Name: m_EditorClassIdentifier: + volume: .538999975 + loop: 1 audioSource: {fileID: 0} audioMode: 1 - beeps: [] + beepSounds: + - {fileID: 8300000, guid: 0cec78902391f4944881c028a5bd61e2, type: 3} + - {fileID: 8300000, guid: e63f93fa5d357441485c639326e9e8f7, type: 3} soundEffect: {fileID: 8300000, guid: 98d045067b3b7428c842dab1285b43a1, type: 3} - loop: 1 - volume: 1 --- !u!114 &1714427707 MonoBehaviour: m_ObjectHideFlags: 0 diff --git a/Assets/Tests/TestAssets/Audio/Beep1.wav b/Assets/Tests/TestAssets/Audio/Beep1.wav new file mode 100644 index 0000000000000000000000000000000000000000..a1ee75278a6ef5c90e9d5152663995f091f1c16f GIT binary patch literal 14596 zcmZu&1)LRC)SrAa^Ezmdlok*rrMpu?Bv!gZ2?2=(DM67E>5@`Fy1N?@q#FU**FA6Y zerI-^?=61cp5M%yxN*+^#69=k*^VumHkE5&Sl0$!nhY2|rl=FcFdQSW#@jK>xtqW! z%!&2uJ*M}4D5Jem5RHk*gvp4|9%Pr*&RQKZ`%J-^hHDbe6p$(Vpy8K+D-I48t~6rd z8Jm5lowaN2nf692tDQ~IhIVMAwWYO*!4m{rV9=xXhr@vohN(zJ2r1cz3}+Dz3GO9$ zo`Uy0!r?$jfM+t0_D+UFD}mq&K{*A=DNs&@1H*1gH>7*gE$NN)TuMp2P1OE@6kJeM$_ZykLZu-SJZ20;|HoFRfalD9w8f%jma~_dEyhI zHnAPwh8Mu|;#086*i-Zr)kU??N_C~0RN_i!rJb@%-YeVXyz&@ny!1?bCAJs4h*yQH zLR+A_sVAwysV`HGlqYqZKf`~`f5SHhD#X9Xo3F{&;J@TY@q75a zJdKkhT`S8fA$ zmwUv8Ih8{kXV%XDaDQ`0xdYq;ZX8#Fd!IYbo?siWjo1Us0j406j~QtiY}!lzMrTof zQx3{Pl_yJ(4Tu^<3%n`b6l;k!LCsMEwXRx6sj1YEKb9*=6{JdHMX{PtO=y;Cp6bqj z&QD2xo7|Z=lnBNn@y7AG@y)Tdv4XMOv5nDn(Yiq4NIY^Rax$_evMRDXvLv!C@@wRF z^M4O7j8)2olfUSVNgngualzp3hyZws&lKqDLg8h(vr+vCT(_X<|*?z`$ z-c}E2opq!2wIyV6S@K&dnk$*Bb5*(GY-v_CQOr&H4|*Z>Bh?rzErR>-W!M6&I{FCR zRQ^gcY>uE?G6gK(a3zVN8f zsE{xCIyfyjA^2giVo(lX!9XAwkOM-XT=4zi*TFA?&w~F1zX**EnZlm%jqo4g-=Y4x z=(gyN*uL0<_`|q6X;1dxyYh!p`%?wQ!s2{skwhyNWsW*ib$}l(z~|u>(n`*xW>P$z zpnEXAm;>w~7Bfp+ZA)cKcWV!8hHa>=qrIp714k8y*AaGn=bY>0T$F2=tB>n9*9O-G z*Gbng*Adr3pysZIu4m5s&bH3>&gG7^jvIjDE89!kJ?jJOF3WDqm*!#SLR@}sC$pWY zXewh`Nv)uggiLhAKgHKWZ15_tlnQbcd4xDkJesfjF^Tbs*ReOT-qAkMSU4G8 z8Cns_2=)lp4%7(L^jG$G@wM>H^Un6Z&dSOfoHZiLo|P->(c5Ql|9pGw>dba$pK@NVtEHFaxb>)&wKMh)9W@*c zoXwmcyQ;fzx5>TJz1LmaQ`@t_v&Qqc=dnle2%eZHRz;pyiY=n1$Z?l$fY?s=|7 zt{u)D&Yg};j>Yyl_HMRzHp(hnmYA2A-JF}7!Axad(s${aRC#JDF_t)n9l=DES8FTP zl}u@}bXGVo6igLLO-+tZ2IBw3N5;m+@TfJqKYTPiCp0ZIEI1@MEHELk(Eqdlsqe9` ziLaUOw)dWQo_D6Vm$wTX-Mmx1Q@rQAm%SBz)qKZ%=Y1pmoUAHG`c)Ekl#S zQ^IE=7a}EN2UscWDgF$fL;grsq$|=_ zOlM7<*beMv?mAb-QpqyTI>EZv_M7dd{jB|>d4=`*EC|z@1a#e7Zc6E1t<{aY~;}~lnV((yUZ1Y&H)LYz!&n>_SNz2_3rbw^S1Ybs=dA}Z&o6U&no6E;T_{0?R^6@ z*_Y|79e6Kb59SY+2~`YbgnNhgMD|4T#0tdb$CtzlW@B}V?ceh8_2G7YdUE9$26WD&BnP9*VEF?vdy}~`pov)rr0qD-O zu1&6n?xyaO?u+i+o?@ORo=%>go<5#-p2nVh9<%45dzZVayRv(U>wDK9&I`^g$7{!H z`z!ku+XdTv>pW`>OEt@F?k}zr+l@VGI%%p*m#3$b)5uHsA9#MO2-ZvOt^O+iCMQH* zY$~)9Ht;)mXEIlEVSHh{MC|?8xybp*jPT@e-%z(u+hChuuRt%bs|Eg7zQ28+0foI0 z?@sRy??Ufunxt6J0Ah9aQ)<};;!WW6-aQa?sA@To?4y{J@0#5o;U7? z?g{RRZl5dVYUyh4n&O=3T!=Ns zNbp2cya_%R%|lm}tBOZ<$UPx9*pb?rVtIxil^CAz#=Nm{(FxH4kvx$Hp+7_0g4=^@ z0&4>M{lEKP_@4Pb_Eq$4^Zw#(;ce)}y(sH>)+>l!{;WdYyxx)CL10zSy;FP>eD(Y_ z{e=U019^g;V2x0f(5UdR@X5&WNV!;r*p~Q~c#UNB1cd`_;Qf1;}})tQUzMYfH(rTK{Epv7sk+1lCL*he`AJEl0lat?5HbCq)! za^C`*YVT?9+2+~d@p@i+h+G0hE1ze-=b)#T=L^p>_j7k`cYXH+*F@LP&Yzq=ITkv` z*}t;auvNF+x4f_nHIFri*(lqU>B{V-5789-wIZ4m-@`a~UcIEU3a+%48c9D1^MzOZ z6TV)uesX90V7y$cTI_7(YGhn^Vz>#!s;4Q#6lB88P;LZw&wR&R z(fWaPux*HKzI~y6sbhs>qBGOk2rMQJG{yam`x(%C;D@z5bv)HPRXv=?;@Rsy4mdS- z?{w{QC7lW9d(Ohna*k4t{PtY-p!J3I7t3->OLHUhZT1%1ifP9jp%2r=s6y04;!ENR zb{s2=a-o5cMIVq3NOsXJ4o{6v{RQJvyF|yti`b*stmxQi-AIK98x}(0;HzLf5Dw%H zE z3DpfZ3y+A5jhu;|i#cYo?YO3QmAQcPN_tW{c~HYkPh*m`0mQI~2& z-KOu;8IUvl%|2sWn46o|S=LxyS)W<0cAGu7Bfo=na?a<@r_RN$C9ab0a_%MW)$UjB zfIF|Jpr@#(l!peiZn|%{N4iJ2gRY3HovW*Bo^!Etw_~^Cu>GKYqivIIjCH)Vg5^WY zU)*hODBGWnnBJNO(i!w0Gz5V(8h5RvJ%IEV1d^W$` z-_qaSztz9fUn%fW;CkRzU`}vBaA0UC#P*)yuOdSt%c4u7cVd6VN+e1orX{B(<9w7K zB@7dyVo;ncPmnDtt1d=MP!YU1zLnTYl%a}JYw6`Q!BEWSYzDi5+rr&7KQ<>UsztWa zwk(KUr(jGR@0jGUJM%hcI2QtTSg=}K5|rc z41=6?p>2t6t#yTUiDj;3q`9BD7FULgF^`xfrrD-4Fn8KZ?j@_ktmhEq4b@?uvrjpq zRF^-IPmAZo4nk+a&xiOW$z{owiB5?;@#67VG!@N?cq4LH3>Oc-53&A>(1qZ^V54BQ z;KRWEz>>h?K>xtNKo5xh6M(h_wgZ}Ea7=J=kO)~rJ3|LT6T_L{fBhq!qZ!dbu@SK! z`dIo|dt2MsTG{g23)!#Q|F92n40QM)Gi~T>;+zSn{SLIldDywg zxyqRVNV%MhbDd+c!|A{s1MEHQt8B|`r(vwPYPn`PWj<#9m0QbAV83RoGqo5$%q*8u z%c)PuTI7BFK0X2)g;9t@tCdYk9l4SGQhXsU6c!7uQ|(iB-o*zJ{=}X5t@y3j)!3Wp z8_2lq(bkbxk!|6v;gaE^;eDaqp^Q+kP}$H2A!o=H$_wXDLRCX!LSsYMfEtGDh5rg) z4^NGZkJOFUkJ@9Nm=HrTF^(rJkh_1xm*;z@x~CQi%Y?tgM`BUAm^?xmuAG7x?|_wo z?)c~UYGOU{fP6tZ==^jYQ+-nprW-Sm9mMwM25_w)-WRtNwLAmLv`z!J%x#-&n{B&m zdt}RRFKDlBuWPSkZ)`6I^Bcv6+4tIZ+1lG$+HP5|S!-FVS?5}2Th5wKn|<6H4&#!n z%1Dgg#G9_tcjztD7V2yAYqBQHr4c4$C(sG>wK`s{p;S{;NtVuwSHz{lN?|m_uKs*? zzE`qavUj3?VnTdsd|PZ=EE4rbTSXg3k4KJ08b+E$-h{Kl8^gbZzkxh+RCr8y641u* zX2=fSgd0cdL8-%$Cedb4%OBkw+Z-Dm9~1AA=$2@aY@ck+e+oGDPGt&{g**uuzzj`aZRYU&?P!ZcE-z+)8*7&P0#+7x5FZ)3I7Wm!jvRBcem26@iE- z6OBZKNHU^C3PcM<+ef=Z*G9KS*_bsp8>m1$U;K3ZILx2FNi)g z6&1lFS)@X8QTaod%ePe9s)Nx$^c^-8TZ=Ejcf%a|IC+>nPVJ`-)BEX7ruC+8nTbpn zwhim%EZhn15ZBe*#eC0v-`v#F*s{^G(&B|#wcTpA7P1z#=C>BKN*2X((Q?Hy(K5|a z&{D{<#k}5Jz?|1Sft$!(fP6${5L2Eh$Fzamsw>@-?oRchJ}0}9ZHcx-ExayX8s-vC zlguM4+@2dVq1C?DaSFizD^woJ}S%uPIuKZ9uBEPgz8EY>#G zI+lRA|2t4-bVhU_pf)f%GCDmvE4mAEf<#n^c8+z7U5TBGwTrikzm30)FH0;;bWV0o zzQ>o~Rh~-ylM1Gu2rmT9@4eDnNtBbaS+%PLPzh8CtA=T7BE5(%#87eoIgIL04X69i z8K$nL`VdR~nS*_Y+qi)*SvcUpIHOw6h$w9I!a8Hfw8ZJL{L$vDO*Znbs-R ziC}TPt>vsATkl!k0$#H$W{b`8t$Bv|HJ1e|40RwzO<{jywlOzMH%)KoEILZXs01mJ zVIo1i#oyvDu?N^4bQxWQ*l^+yyIJnW;&s?m`ElkyuNt0P8_T<@e=+N>QbdT0|{^ilbs! zX{-=l8ZS%~Ckl~;NGoNdl0c6kj_fpTHjQCMF%{Vg>>c(VJB%9zv!6KE&pgn4!FT}$EG;elEQ2hAEu+E9Mq28?6UJh<95bIa_cUjiy%3)Uay_{l>>0K=TafL;^ktTr zmYL4cr|6f|3o1^=Nkk|FL(l|;bGQoYwW5k6Q6V5yVTvRXvRN`qMIm>nBUBf@NPUr7 z%rD_@C+{SSC(9fx6QDhw9th*ibhl3NN% z3F)rO)D37e((=D4_%wVdF`Q^iwjnD~6)76l{r;qH(hE%sO--2=j2H6x z>Fi9_4smM+H=TRS`CuKej(MVavU#(4i}{rK1X$8p^FH%_z-NiMJy?|)Fxt)S<{EHy zxzp@P_9M0uyO{Z&@tU5QDwv8x4%(CcnOX$v$_L3uure#+5!{BecoD29RvA@6P1I&; zhLWL7fLw67v{E`PUJxTfT&N_J5yq!Rq^|K7`7%JuA@9nU%#-{Ta@97876}~a9Qfpl z_=fm*@%cdC#ea#fieHSMgRB6>+ay{hwj?$t@h7?0{u$Fw0o^HxC zm1RC)&M+4kZO!IBdxLGn)rSmeJ**r1xf13w=2k$x&E3H}Gt8X;sSnH*%siLme&_ab z9k}k?TQs_;7XGSxZNF?El>%MaxH@z4mrGr21{ zGWk`qZn9po5ZI0*=}NkR$|OrC+rXIcZ89@?HF*ifz5M)KekL#Q5Ab{Hfe}FP%f{O2M%J&35cO{(08aU))mWx7sH?6Z}4@nLy2eLFtnxy+ul%5Xr`ATFpe*D?%dq8GV^|vr;vsw?*jHt; z0(q6ZM0TONz%I^XDueC@E9BScYNqO@1*XNOr=}OCqD%>*>jDMUvKVZG4o>EIW2$+2g>&%BB?`kGBk)DW;VHajH zNLfaF1Rk^;WF9CC7wQVlz@y3ud4&8zE+My281SefR24eG-pw>&mT*KkDnN1~v=&>7 z8^lc_CYhu`(lF_P^ib*`e=1*<|CC!R9hIBP1LZR{Lw%#ZRmY&wu(O8H9Bdxuz&-eK z{3pC9k(*dWEQWY*C1;RR$pD!}wxe26+o{czObJwdx&b|joP7W}S_9QYzoYGtI~2hd0)a!|qwvu% zD|?F9BbvgjXDfjS0P8i$-lHCq56LCuVzMFGj0_MFVkz-6QIn`e+{Yi_W1(jc zZo#)5C8#V^eggZdr$ps2NVP>CBKMOk!5#uH ziP9D6sgq<+!>_#GsTgZp{#<`-#;bXmFtd#h2YtXx{oko(AM z0Q(p6KXN(cBW0p8O}VbzQc9|&)oJQf(9~nVsTTSfErT8182St}xf|PqSzsg@2y_HL z0sDpyqC3%p*aVbCc!^TrC*8@u?_ACHa(8ft-|wDhyPTDn%6s(sBTrVktlA zCvU=9%T{tdIRWN-4ap`XMOw)7#1#`~)Nd$2}z6M`~w**RHNo*aq25W{j$3no< zGPDvkMomyy4XJC@HEMgcok{^6Q;sSVl&@iQs;Q_lpmral|zcG zC`wbck-Au&4>-M0%b?0=0?I^JKz9Yerbb~yursh8qG8n$?+$+W3;rD9d?}(7(U0g0 z{gSZV@BMz~pEZK@|OZF#+gLh^EazBDMEhpEKYsi)4YVrrLoXO-&av(Vj%C&>i z6-b<<$-juZ#0H=d#89FNQGwtgF7Cni;e)`Ai$gyA410tv!xm$$u-34{PGNh{Q8W~d zLM2ft^tbvo zgFJynO;IZ}2hBw{&^6@3Tv$gK2Nz;LL*{T7^WeGg_7FMd;&brR_$k=ENZ`eY5-?+H zON=AN5X-@D4iNi^8^m?u1yF#9!VE@M#f_Mek{z)7r4if7iW@o~hPgj^n zeE=B2hX%wSuotlkG%^V9gIB`K<1s9X9m4j)PW{(dU95KY*9~XTY2a}>Y74wNVZHP& zXnBLW6?ULTgVr0U`P4iR!$OcLUISTwQ|2k(fn|KDd;vLGJEgtSOlhn%QtHBPdtJC{ zqO?}pD%~Ns9jOdeW`UorQ`RWQl+(&%*pnnxM*UE&0GjBg{-DlPkEzGOnnP+SnA>DP z%v=QPd>7Gmi0TAZ6RUxJg$=`g!!}@#A-38fZq&zX;luGE_|FjQ&)~=LfAGI?nqUF7 zl0-eCF3}mNKQWjX4SRc&h$+Ok#57_iF%`~}vN0V7Z+j9QVI{o|AXJ91gHH#*=dR4b?J0uwA0UL`jJPhHsRAz*1f)_W+HDaHU;qu{r@UkAyNF zC|efl)C1(Tac;c&jk;W21zFT-^{M(=r65jLL?5EhQCBn*O@p|;1Kor1hJbHXKE%pl zpJSh5(_r0U3($4!8WzLCkaxN8nxOrzU~40QX5zEKCRX6P@a3abN{qZlrt9oa9R$ut-0rVNX?}#_V zo8#4?Mp>wt559~sK|5iH%)pbdiycv;YFPEd;Z=iR zkwJJ8Q?)lpmEn^W3cTBfibBl~P+6qq1c0gWUim z?_f{i{2b2Du@~4Az~B+~46t|r5%3mvGrQy&SXDfN?Zb9~4mLsNy8<%0?;%Eg13e7I zdSgAXwpcsJ7V3kASHcQlg)l38?IiON&waz|1MeX3e3;GoGM4h2z52(`*P#=cIg9S|k z+non-d@10w0cbnybsYkfE`V*{Mt=cH&rt+sh1z#sEM~(zSV629RuZ`V2%>B)&~a19 zC^}-@VcyXn8vr&p93t=-z;7Zp6EOS^n+-D011x_4G#6k$VoLx4?N|WMG&JTwiCIu` z8d%Ll`08scM8;8AKWHlh@ackehA)cRU=1LvssU6Hs3cY#doSCnESMR-Xj4IxQ4~jS z0JX>HC7^Z>{gI8_MRW?C1oZZ!gV|R1JNgx9E7}OQunr>K8i;qRVYaji4()d}JY5SY ztcMaC(U$D8S|r+y_M!vXxSWJF>`UkzSkQH_qrcDt=Tf9?GuouK491o2-Z&EyQCJ75w!%LX%1G=0>=9`aMd2( zXur+jc_TPCfcv^|RXdxi!dUV#L`VcZYKQhk9|iV9!WVhkpuR5_q;1 zYDgNfK(DE{VrWUnOuN&b>vawM3`^E@t@EnetyWgU#HeL(VR(gZWk!j##trP!zgj!G zT^U$V|KecO*16JZ=o(4mtw#|ZaltTzXlfl!2=8RM&^z zzlOYlRQl>&E(|M0*)r(yPQxvYijHEs+`C9?lIi}YBdc4bj+r67{%c@n$Ysc*)zG;& zEWs#Yc$GF17?D`-&9FMHpPW{sbE8|Ft_j`R-bLkI?sS{b5KBj*v{&fzX!Z44Myq<9 z$tj_(O$}#F4h^rgXXLbFjYsWIt7{;q)zW*?QPL1Fyh@WsFPHP`zkFmj3FWj_4ViUK zrL9bRXIQ4efp-6{zI8eE_c~WP_d0)iS%Yr_leA4}8A&?27+TZqUe~AL19~*nYwDco zycn_EkXb9QOK#Yp!MnzhE{|Sc<4-6_Nh67X#ItGU?YjInuF9pA8fZ=?zW{+xu@M zG|Fole>YC1Z9vzkZs%#4H7+zMbZg0pkA7|7oJQck*rp}abHQ}mIW?^#tNVq~r>;*8 z4a4#ct50*SNv8d2d>BvlYr|J{)U;;?#yYY&Jyt8DJ=NRN?hM5AXS&DeK3T|&yb!Wrlr%c(tX^JG~I?FVOmPfru0MW(a@1r!+8Gguin3o zu7QOvcTNrKG8qx?zuM9yGC0wC(puAOM%MPz|II&LL#oZ3jYpj{bU>QE_Y1MQsy&Lb1r+NfW|Hql`xdx_MZCzUJO6SXvMzdd3oPFwkqI-fqpEBkJ z>Ap1HbiL~_&yYgn-tZJ1gPeB;R(d-IFNVa1p58^vKvJ_*XT*{W`R z@8WFqtlMhZGmIFSGZOs&XlYt7JWJPB&X}ZgXpHpQ|M6+@M&~8XrH+xtpYhCS^?v~3 ChrAU4 literal 0 HcmV?d00001 diff --git a/Assets/Tests/TestAssets/Audio/Beep1.wav.meta b/Assets/Tests/TestAssets/Audio/Beep1.wav.meta new file mode 100644 index 00000000..d35662f5 --- /dev/null +++ b/Assets/Tests/TestAssets/Audio/Beep1.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: 0cec78902391f4944881c028a5bd61e2 +timeCreated: 1440502847 +licenseType: Free +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 1 + sampleRateSetting: 0 + sampleRateOverride: 0 + compressionFormat: 0 + quality: .5 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/TestAssets/Audio/Beep2.wav b/Assets/Tests/TestAssets/Audio/Beep2.wav new file mode 100644 index 0000000000000000000000000000000000000000..63293edf8770ae81cbeb52a3ab4df2aac5804d82 GIT binary patch literal 15548 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 YBPpo4C{mCI5vT7_ge0TxMJO%*588CRRsaA1 literal 0 HcmV?d00001 diff --git a/Assets/Tests/TestAssets/Audio/Beep2.wav.meta b/Assets/Tests/TestAssets/Audio/Beep2.wav.meta new file mode 100644 index 00000000..92a8a716 --- /dev/null +++ b/Assets/Tests/TestAssets/Audio/Beep2.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: e63f93fa5d357441485c639326e9e8f7 +timeCreated: 1440502847 +licenseType: Free +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 1 + sampleRateSetting: 0 + sampleRateOverride: 0 + compressionFormat: 0 + quality: .5 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Tests/TestAssets/Audio/Beep3.wav b/Assets/Tests/TestAssets/Audio/Beep3.wav new file mode 100644 index 0000000000000000000000000000000000000000..fe6e9a491be037885fd3f90de4235df8301c2caf GIT binary patch literal 14596 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 P!k&G?j&e~MZ2JEPeyAzf literal 0 HcmV?d00001 diff --git a/Assets/Tests/TestAssets/Audio/Beep3.wav.meta b/Assets/Tests/TestAssets/Audio/Beep3.wav.meta new file mode 100644 index 00000000..14cb4a29 --- /dev/null +++ b/Assets/Tests/TestAssets/Audio/Beep3.wav.meta @@ -0,0 +1,22 @@ +fileFormatVersion: 2 +guid: c40373edf37cb4a3f8b7b1103d03b1bb +timeCreated: 1440502847 +licenseType: Free +AudioImporter: + serializedVersion: 6 + defaultSettings: + loadType: 1 + sampleRateSetting: 0 + sampleRateOverride: 0 + compressionFormat: 0 + quality: .5 + conversionMode: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + preloadAudioData: 1 + loadInBackground: 0 + 3D: 0 + userData: + assetBundleName: + assetBundleVariant: