Browse Source

Fixed voice over audio only works every second time #126

master
chrisgregan 9 years ago
parent
commit
60fbcef87a
  1. 7
      Assets/Fungus/Narrative/Scripts/Commands/Say.cs
  2. 91
      Assets/Fungus/Narrative/Scripts/Dialog.cs
  3. 84
      Assets/Fungus/Narrative/Scripts/DialogAudio.cs
  4. 12
      Assets/Fungus/Narrative/Scripts/DialogAudio.cs.meta
  5. 26
      Assets/Fungus/Narrative/Scripts/DialogText.cs
  6. 8
      Assets/Fungus/Narrative/Scripts/SayDialog.cs
  7. 4
      Assets/Tests/Audio.meta
  8. 9
      Assets/Tests/Audio/Audio.meta
  9. BIN
      Assets/Tests/Audio/Audio/VoiceOver1.wav
  10. 22
      Assets/Tests/Audio/Audio/VoiceOver1.wav.meta
  11. BIN
      Assets/Tests/Audio/Audio/VoiceOver2.wav
  12. 22
      Assets/Tests/Audio/Audio/VoiceOver2.wav.meta
  13. 641
      Assets/Tests/Audio/AudioTests.unity
  14. 8
      Assets/Tests/Audio/AudioTests.unity.meta

7
Assets/Fungus/Narrative/Scripts/Commands/Say.cs

@ -95,11 +95,6 @@ namespace Fungus
sayDialog.ShowDialog(true);
}
if (voiceOverClip != null)
{
sayDialog.PlayVoiceOver(voiceOverClip);
}
string displayText = storyText;
foreach (CustomTag ct in CustomTag.activeCustomTags)
@ -118,7 +113,7 @@ namespace Fungus
string subbedText = flowchart.SubstituteVariables(displayText);
sayDialog.Say(subbedText, waitForClick, delegate {
sayDialog.Say(subbedText, waitForClick, voiceOverClip, delegate {
if (waitForClick)
{
bool fadingOut = false;

91
Assets/Fungus/Narrative/Scripts/Dialog.cs

@ -50,10 +50,7 @@ namespace Fungus
protected bool wasPointerClicked;
protected AudioSource voiceOverAudio;
// The current target writing volume to move towards
protected float targetWritingVolume;
public DialogAudio audioController = new DialogAudio();
protected virtual void LateUpdate()
{
@ -72,30 +69,6 @@ namespace Fungus
wasPointerClicked = true;
clickCooldownTimer = 0.2f;
}
// Fade writing sound
AudioSource audio = GetComponent<AudioSource>();
if (audio != null)
{
if (audio.volume == 0f &&
targetWritingVolume > 0)
{
audio.Play();
}
if (targetWritingVolume > audio.volume)
{
audio.volume = targetWritingVolume;
}
else
{
audio.volume = Mathf.MoveTowards(audio.volume, targetWritingVolume, Time.deltaTime * 8f);
if (audio.volume == 0f)
{
audio.Stop();
}
}
}
}
public virtual void ShowDialog(bool visible)
@ -119,18 +92,6 @@ namespace Fungus
}
}
public virtual void SetTypingSoundVolume(bool audible)
{
if (audible)
{
targetWritingVolume = writingVolume;
}
else
{
targetWritingVolume = 0f;
}
}
public virtual void FadeInDialog()
{
LeanTween.cancel(dialogCanvas.gameObject);
@ -294,7 +255,7 @@ namespace Fungus
}
}
protected virtual IEnumerator WriteText(string text, Action onWritingComplete, Action onExitTag)
protected virtual IEnumerator WriteText(string text, AudioClip voiceOverClip, Action onWritingComplete, Action onExitTag)
{
storyText.text = "";
@ -319,26 +280,22 @@ namespace Fungus
dialogText.slowBeepsAt = slowBeepsAt;
dialogText.fastBeepsAt = fastBeepsAt;
AudioSource typingAudio = GetComponent<AudioSource>();
if (characterTypingSound != null || writingSound != null)
audioController.audioSource = GetComponent<AudioSource>();
audioController.volume = writingVolume;
audioController.loop = loopWritingSound;
if (voiceOverClip != null)
{
if (characterTypingSound != null)
audioController.audioClip = voiceOverClip;
}
else if (characterTypingSound != null)
{
typingAudio.clip = characterTypingSound;
audioController.audioClip = characterTypingSound;
}
else if (writingSound != null)
{
typingAudio.clip = writingSound;
}
typingAudio.loop = loopWritingSound;
// Start at full volume
typingAudio.volume = writingVolume;
SetTypingSoundVolume(true);
typingAudio.Play();
audioController.audioClip = writingSound;
}
audioController.Play();
foreach (Token token in parser.tokens)
{
@ -394,7 +351,7 @@ namespace Fungus
OnWaitForInputTag(false);
currentSpeed = writingSpeed;
dialogText.Clear();
StopVoiceOver();
audioController.Stop();
break;
case TokenType.WaitOnPunctuationStart:
@ -430,7 +387,7 @@ namespace Fungus
if (onExitTag != null)
{
prevStoryText = storyText.text;
SetTypingSoundVolume(false);
audioController.Stop();
onExitTag();
}
yield break;
@ -531,7 +488,7 @@ namespace Fungus
prevStoryText = storyText.text;
SetTypingSoundVolume(false);
audioController.Stop();
if (onWritingComplete != null)
{
@ -663,24 +620,6 @@ namespace Fungus
wasPointerClicked = true;
}
}
public virtual void PlayVoiceOver(AudioClip voiceOverSound)
{
if (voiceOverAudio == null)
{
voiceOverAudio = gameObject.AddComponent<AudioSource>();
}
voiceOverAudio.clip = voiceOverSound;
voiceOverAudio.Play();
}
public virtual void StopVoiceOver()
{
if (voiceOverAudio)
{
Destroy(voiceOverAudio);
}
}
}
}

84
Assets/Fungus/Narrative/Scripts/DialogAudio.cs

@ -0,0 +1,84 @@
using UnityEngine;
using System.Collections;
namespace Fungus
{
/*
* Helper class to manage play, pause & stop operations on voiceover and writing sound effects
*/
public class DialogAudio
{
public AudioSource audioSource;
public AudioClip audioClip;
public float volume;
public bool loop;
public virtual void Play()
{
if (audioSource == null ||
audioClip == null)
{
return;
}
audioSource.clip = audioClip;
audioSource.loop = loop;
// Fade in the audio at start
LeanTween.value(audioSource.gameObject, 0f, volume, 0.1f).setOnUpdate( (value) => {
audioSource.volume = value;
});
audioSource.Play();
}
public virtual void Pause()
{
if (audioSource == null)
{
return;
}
// Fade out the audio
// There's an audible click if you call audioSource.Pause() so instead just
// drop the volume to 0.
LeanTween.value(audioSource.gameObject, volume, 0f, 0.1f).setOnUpdate( (value) => {
audioSource.volume = value;
});
}
public virtual void Stop()
{
if (audioSource == null)
{
return;
}
// Fade out the audio
LeanTween.value(audioSource.gameObject, audioSource.volume, 0f, 0.1f).setOnUpdate( (value) => {
audioSource.volume = value;
}).setOnComplete( () => {
// There's an audible click if you call audioSource.Stop() so instead we just switch off
// looping and let the audio stop automatically at the end of the clip
audioSource.loop = false;
});
}
public virtual void Resume()
{
if (audioSource == null)
{
return;
}
audioSource.volume = volume;
if (!audioSource.isPlaying)
{
audioSource.loop = loop;
audioSource.Play();
}
}
}
}

12
Assets/Fungus/Narrative/Scripts/DialogAudio.cs.meta

@ -0,0 +1,12 @@
fileFormatVersion: 2
guid: c4782cf42f2644447b9631f6e522160b
timeCreated: 1439218718
licenseType: Free
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

26
Assets/Fungus/Narrative/Scripts/DialogText.cs

@ -38,17 +38,13 @@ namespace Fungus
public virtual void Append(string words)
{
AudioSource typingAudio = parentDialog.GetComponent<AudioSource>();
if (beepPerCharacter && (writingSpeed <= slowBeepsAt || writingSpeed >= fastBeepsAt)) // beeps match character speed at these speeds
{
oneBeep = true;
}
else
oneBeep = false;
if (typingAudio != null)
{
typingAudio.Stop();
if (!oneBeep)
typingAudio.Play();
oneBeep = false;
}
float hideTimer = 0f;
@ -130,10 +126,10 @@ namespace Fungus
if (glyph.hideTimer > 0f)
{
if (typingAudio != null &&
glyph.hasPunctuationPause)
// Don't pause audio on punctuation pause as it's very noticeable and distracting
if (glyph.hasPunctuationPause)
{
parentDialog.SetTypingSoundVolume(false);
parentDialog.audioController.Pause();
}
bool finished = false;
@ -159,10 +155,9 @@ namespace Fungus
}
// Check if we need to restore audio after a punctuation pause
if (typingAudio != null &&
glyph.hideTimer == 0f)
if (glyph.hideTimer == 0f)
{
parentDialog.SetTypingSoundVolume(true);
parentDialog.audioController.Resume();
}
if (finished)
@ -172,10 +167,7 @@ namespace Fungus
}
}
if (typingAudio != null)
{
parentDialog.SetTypingSoundVolume(false);
}
parentDialog.audioController.Stop();
return true;
}

8
Assets/Fungus/Narrative/Scripts/SayDialog.cs

@ -43,7 +43,7 @@ namespace Fungus
return activeSayDialog;
}
public virtual void Say(string text, bool waitForInput, Action onComplete)
public virtual void Say(string text, bool waitForInput, AudioClip voiceOverClip, Action onComplete)
{
Clear();
@ -57,8 +57,10 @@ namespace Fungus
{
AudioSource.PlayClipAtPoint(continueSound, Vector3.zero);
}
Clear();
StopVoiceOver();
audioController.Stop();
if (onComplete != null)
{
onComplete();
@ -83,7 +85,7 @@ namespace Fungus
}
};
StartCoroutine(WriteText(text, onWritingComplete, onExitTag));
StartCoroutine(WriteText(text, voiceOverClip, onWritingComplete, onExitTag));
}
public override void Clear()

4
Assets/Fungus/UI.meta → Assets/Tests/Audio.meta

@ -1,7 +1,7 @@
fileFormatVersion: 2
guid: 71839549e49ad422ba0be670a2d9e8f3
guid: 7b5a2e9e9c22f479480e7cf72064bffa
folderAsset: yes
timeCreated: 1435850993
timeCreated: 1439214867
licenseType: Free
DefaultImporter:
userData:

9
Assets/Tests/Audio/Audio.meta

@ -0,0 +1,9 @@
fileFormatVersion: 2
guid: b0e66ac85092d4c21a57935d56b1ddca
folderAsset: yes
timeCreated: 1439214995
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

BIN
Assets/Tests/Audio/Audio/VoiceOver1.wav

Binary file not shown.

22
Assets/Tests/Audio/Audio/VoiceOver1.wav.meta

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 98d045067b3b7428c842dab1285b43a1
timeCreated: 1439215036
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:

BIN
Assets/Tests/Audio/Audio/VoiceOver2.wav

Binary file not shown.

22
Assets/Tests/Audio/Audio/VoiceOver2.wav.meta

@ -0,0 +1,22 @@
fileFormatVersion: 2
guid: 4740988b391ff49bfbb897b60a0bf268
timeCreated: 1439215036
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:

641
Assets/Tests/Audio/AudioTests.unity

@ -0,0 +1,641 @@
%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!29 &1
SceneSettings:
m_ObjectHideFlags: 0
m_PVSData:
m_PVSObjectsArray: []
m_PVSPortalsArray: []
m_OcclusionBakeSettings:
smallestOccluder: 5
smallestHole: .25
backfaceThreshold: 100
--- !u!104 &2
RenderSettings:
m_ObjectHideFlags: 0
serializedVersion: 6
m_Fog: 0
m_FogColor: {r: .5, g: .5, b: .5, a: 1}
m_FogMode: 3
m_FogDensity: .00999999978
m_LinearFogStart: 0
m_LinearFogEnd: 300
m_AmbientSkyColor: {r: .211999997, g: .226999998, b: .259000003, a: 1}
m_AmbientEquatorColor: {r: .114, g: .125, b: .133000001, a: 1}
m_AmbientGroundColor: {r: .0469999984, g: .0430000015, b: .0350000001, a: 1}
m_AmbientIntensity: 1
m_AmbientMode: 3
m_SkyboxMaterial: {fileID: 0}
m_HaloStrength: .5
m_FlareStrength: 1
m_FlareFadeSpeed: 3
m_HaloTexture: {fileID: 0}
m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
m_DefaultReflectionMode: 0
m_DefaultReflectionResolution: 128
m_ReflectionBounces: 1
m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
--- !u!127 &3
LevelGameManager:
m_ObjectHideFlags: 0
--- !u!157 &4
LightmapSettings:
m_ObjectHideFlags: 0
serializedVersion: 5
m_GIWorkflowMode: 1
m_LightmapsMode: 1
m_GISettings:
serializedVersion: 2
m_BounceScale: 1
m_IndirectOutputScale: 1
m_AlbedoBoost: 1
m_TemporalCoherenceThreshold: 1
m_EnvironmentLightingMode: 0
m_EnableBakedLightmaps: 0
m_EnableRealtimeLightmaps: 0
m_LightmapEditorSettings:
serializedVersion: 3
m_Resolution: 2
m_BakeResolution: 40
m_TextureWidth: 1024
m_TextureHeight: 1024
m_AOMaxDistance: 1
m_Padding: 2
m_CompAOExponent: 0
m_LightmapParameters: {fileID: 0}
m_TextureCompression: 1
m_FinalGather: 0
m_FinalGatherRayCount: 1024
m_LightmapSnapshot: {fileID: 0}
m_RuntimeCPUUsage: 25
--- !u!196 &5
NavMeshSettings:
serializedVersion: 2
m_ObjectHideFlags: 0
m_BuildSettings:
serializedVersion: 2
agentRadius: .5
agentHeight: 2
agentSlope: 45
agentClimb: .400000006
ledgeDropHeight: 0
maxJumpAcrossDistance: 0
accuratePlacement: 0
minRegionArea: 2
cellSize: .166666672
manualCellSize: 0
m_NavMeshData: {fileID: 0}
--- !u!1 &76140891
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 76140896}
- 20: {fileID: 76140895}
- 92: {fileID: 76140894}
- 124: {fileID: 76140893}
- 81: {fileID: 76140892}
m_Layer: 0
m_Name: Main Camera
m_TagString: MainCamera
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!81 &76140892
AudioListener:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 76140891}
m_Enabled: 1
--- !u!124 &76140893
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 76140891}
m_Enabled: 1
--- !u!92 &76140894
Behaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 76140891}
m_Enabled: 1
--- !u!20 &76140895
Camera:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 76140891}
m_Enabled: 1
serializedVersion: 2
m_ClearFlags: 1
m_BackGroundColor: {r: .192156866, g: .301960796, b: .474509805, a: .0196078438}
m_NormalizedViewPortRect:
serializedVersion: 2
x: 0
y: 0
width: 1
height: 1
near clip plane: .300000012
far clip plane: 1000
field of view: 60
orthographic: 1
orthographic size: 5
m_Depth: -1
m_CullingMask:
serializedVersion: 2
m_Bits: 4294967295
m_RenderingPath: -1
m_TargetTexture: {fileID: 0}
m_TargetDisplay: 0
m_HDR: 0
m_OcclusionCulling: 1
m_StereoConvergence: 10
m_StereoSeparation: .0219999999
m_StereoMirrorMode: 0
--- !u!4 &76140896
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 76140891}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: -10}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!1 &641282520
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 641282521}
- 114: {fileID: 641282522}
m_Layer: 0
m_Name: TestAssertions
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &641282521
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 641282520}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: -.137771219, y: -.16843766, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1602367573}
m_RootOrder: 1
--- !u!114 &641282522
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 641282520}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 8bafa54482a87ac4cbd7ff1bfd1ac93a, type: 3}
m_Name:
m_EditorClassIdentifier:
checkAfterTime: 1
repeatCheckTime: 1
repeatEveryTime: 1
checkAfterFrames: 1
repeatCheckFrame: 1
repeatEveryFrame: 1
hasFailed: 0
checkMethods: 2
m_ActionBase: {fileID: 809764427}
checksPerformed: 0
--- !u!1 &651329430
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 651329432}
- 114: {fileID: 651329431}
m_Layer: 0
m_Name: TestRunner
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &651329431
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 651329430}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 5c3afc1c624179749bcdecf7b0224902, type: 3}
m_Name:
m_EditorClassIdentifier:
currentTest: {fileID: 0}
--- !u!4 &651329432
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 651329430}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 2
--- !u!114 &809764427
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: 1716415743}
thisPropertyPath: gameObject.activeSelf
compareToType: 1
other: {fileID: 0}
otherPropertyPath:
constantValueGeneric: 1
--- !u!1 &845793759
GameObject:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 845793761}
- 114: {fileID: 845793760}
m_Layer: 0
m_Name: _FungusState
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &845793760
MonoBehaviour:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 845793759}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 61dddfdc5e0e44ca298d8f46f7f5a915, type: 3}
m_Name:
m_EditorClassIdentifier:
selectedFlowchart: {fileID: 1716415747}
--- !u!4 &845793761
Transform:
m_ObjectHideFlags: 1
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 845793759}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 0}
m_RootOrder: 0
--- !u!1 &1602367571
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1602367573}
- 114: {fileID: 1602367572}
m_Layer: 0
m_Name: VoiceOverTest
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!114 &1602367572
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1602367571}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: b1dba0b27b0864740a8720e920aa88c0, type: 3}
m_Name:
m_EditorClassIdentifier:
timeout: 5
ignored: 0
succeedAfterAllAssertionsAreExecuted: 1
expectException: 0
expectedExceptionList:
succeedWhenExceptionIsThrown: 0
includedPlatforms: -1
platformsToIgnore: []
dynamic: 0
dynamicTypeName:
--- !u!4 &1602367573
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1602367571}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 1716415744}
- {fileID: 641282521}
m_Father: {fileID: 0}
m_RootOrder: 1
--- !u!1 &1716415743
GameObject:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 142980, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2}
m_PrefabInternal: {fileID: 0}
serializedVersion: 4
m_Component:
- 4: {fileID: 1716415744}
- 114: {fileID: 1716415747}
- 114: {fileID: 1716415746}
- 114: {fileID: 1716415745}
- 114: {fileID: 1716415751}
- 114: {fileID: 1716415750}
- 114: {fileID: 1716415749}
- 114: {fileID: 1716415748}
- 114: {fileID: 1716415753}
- 114: {fileID: 1716415752}
m_Layer: 0
m_Name: Flowchart
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1716415744
Transform:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 467082, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a, type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 1602367573}
m_RootOrder: 0
--- !u!114 &1716415745
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 11462346, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: d2f6487d21a03404cb21b245f0242e79, type: 3}
m_Name:
m_EditorClassIdentifier:
parentBlock: {fileID: 1716415746}
--- !u!114 &1716415746
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 11433304, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 3d3d73aef2cfc4f51abf34ac00241f60, type: 3}
m_Name:
m_EditorClassIdentifier:
nodeRect:
serializedVersion: 2
x: 67
y: 69
width: 120
height: 40
itemId: 0
blockName: Start
description:
eventHandler: {fileID: 1716415745}
commandList:
- {fileID: 1716415753}
- {fileID: 1716415751}
- {fileID: 1716415752}
- {fileID: 1716415750}
- {fileID: 1716415749}
- {fileID: 1716415748}
--- !u!114 &1716415747
MonoBehaviour:
m_ObjectHideFlags: 0
m_PrefabParentObject: {fileID: 11430050, guid: 5e7fbc8d4eb714b279eeeef2262c1e1a,
type: 2}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 7a334fe2ffb574b3583ff3b18b4792d3, type: 3}
m_Name:
m_EditorClassIdentifier:
version: 1.0
scrollPos: {x: 0, y: 0}
variablesScrollPos: {x: 0, y: 0}
variablesExpanded: 1
blockViewHeight: 400
zoom: 1
scrollViewRect:
serializedVersion: 2
x: -343
y: -340
width: 1114
height: 859
selectedBlock: {fileID: 0}
selectedCommands: []
variables: []
description: "This is a manual test. \nClick through the Say dialog and listen to
\nthe voiceover audio to check if it's correct."
stepPause: 0
colorCommands: 1
hideComponents: 1
saveSelection: 1
localizationId:
--- !u!114 &1716415748
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 4
errorMessage:
indentLevel: 0
storyText: Voice over 4
description:
character: {fileID: 0}
portrait: {fileID: 0}
voiceOverClip: {fileID: 8300000, guid: 4740988b391ff49bfbb897b60a0bf268, type: 3}
showAlways: 1
showCount: 1
extendPrevious: 0
fadeIn: 0
fadeOut: 0
waitForClick: 1
setSayDialog: {fileID: 0}
--- !u!114 &1716415749
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 3
errorMessage:
indentLevel: 0
storyText: Voice over 3
description:
character: {fileID: 0}
portrait: {fileID: 0}
voiceOverClip: {fileID: 8300000, guid: 98d045067b3b7428c842dab1285b43a1, type: 3}
showAlways: 1
showCount: 1
extendPrevious: 0
fadeIn: 0
fadeOut: 0
waitForClick: 1
setSayDialog: {fileID: 0}
--- !u!114 &1716415750
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 2
errorMessage:
indentLevel: 0
storyText: "Voice over 2. Wait {w=2}, Wait for input{wi}, Wait and Clear {wc} \nAll
done."
description:
character: {fileID: 0}
portrait: {fileID: 0}
voiceOverClip: {fileID: 8300000, guid: 4740988b391ff49bfbb897b60a0bf268, type: 3}
showAlways: 1
showCount: 1
extendPrevious: 0
fadeIn: 0
fadeOut: 0
waitForClick: 1
setSayDialog: {fileID: 0}
--- !u!114 &1716415751
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 1
errorMessage:
indentLevel: 0
storyText: Voice over 1 with a lot of text that runs on for a bit. Also, this text
has some... punctuation! Yes, it does.
description:
character: {fileID: 0}
portrait: {fileID: 0}
voiceOverClip: {fileID: 8300000, guid: 98d045067b3b7428c842dab1285b43a1, type: 3}
showAlways: 1
showCount: 1
extendPrevious: 0
fadeIn: 0
fadeOut: 0
waitForClick: 1
setSayDialog: {fileID: 0}
--- !u!114 &1716415752
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 6
errorMessage:
indentLevel: 0
storyText: Typing text 2
description:
character: {fileID: 0}
portrait: {fileID: 0}
voiceOverClip: {fileID: 0}
showAlways: 1
showCount: 1
extendPrevious: 0
fadeIn: 0
fadeOut: 0
waitForClick: 1
setSayDialog: {fileID: 0}
--- !u!114 &1716415753
MonoBehaviour:
m_ObjectHideFlags: 2
m_PrefabParentObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_GameObject: {fileID: 1716415743}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec422cd568a9c4a31ad7c36d0572b9da, type: 3}
m_Name:
m_EditorClassIdentifier:
itemId: 5
errorMessage:
indentLevel: 0
storyText: Typing out a lot of text 1
description:
character: {fileID: 0}
portrait: {fileID: 0}
voiceOverClip: {fileID: 0}
showAlways: 1
showCount: 1
extendPrevious: 0
fadeIn: 0
fadeOut: 0
waitForClick: 1
setSayDialog: {fileID: 0}

8
Assets/Tests/Audio/AudioTests.unity.meta

@ -0,0 +1,8 @@
fileFormatVersion: 2
guid: 6b527a340ebb842fdb51da95ba6f713f
timeCreated: 1439214925
licenseType: Free
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:
Loading…
Cancel
Save