From 137368f9cb857d809e99785788ee2f61f2b2bb2c Mon Sep 17 00:00:00 2001 From: ilia Date: Sat, 29 Jan 2022 11:50:50 +0300 Subject: [PATCH] add dialogs --- ...ю где поломка.wav => Я совсем забыл, я же не знаю где поломка.wav} | Bin ... поломка.wav.meta => Я совсем забыл, я же не знаю где поломка.wav.meta} | 2 +- Assets/images/avatars.meta | 8 + Assets/images/avatars/captainIcon.png | Bin 0 -> 28835 bytes Assets/images/avatars/captainIcon.png.meta | 120 +++++++++ Assets/images/avatars/pilotIcon.png | Bin 0 -> 26850 bytes Assets/images/avatars/pilotIcon.png.meta | 120 +++++++++ Assets/images/avatars/voiceAssistantIcon.png | Bin 0 -> 8088 bytes .../avatars/voiceAssistantIcon.png.meta | 120 +++++++++ Assets/prefabs/Dialog/avatars.meta | 8 + .../avatars/captainAvatar Variant.prefab | 103 ++++++++ .../avatars/captainAvatar Variant.prefab.meta | 7 + .../prefabs/Dialog/avatars/pilotAvatar.prefab | 77 ++++++ .../Dialog/avatars/pilotAvatar.prefab.meta | 7 + .../voiceAssistantAvatar Variant.prefab | 103 ++++++++ .../voiceAssistantAvatar Variant.prefab.meta | 7 + Assets/scripts/dialogSystem/AudioPlayer.cs | 11 +- .../scripts/dialogSystem/AudioVisualizer.cs | 82 +++++-- Assets/scripts/dialogSystem/DialogData.cs | 230 ++++++++++++++++++ .../scripts/dialogSystem/DialogData.cs.meta | 11 + Assets/scripts/dialogSystem/DialogPlayer.cs | 88 ++++--- Assets/scripts/dialogSystem/Replica.cs | 10 +- Assets/scripts/dialogSystem/Roles.cs | 4 +- 23 files changed, 1067 insertions(+), 51 deletions(-) rename Assets/Resources/audio/пилот/{Я совсем забыл, я же не знаю где поломка.wav => Я совсем забыл, я же не знаю где поломка.wav} (100%) rename Assets/Resources/audio/пилот/{Я совсем забыл, я же не знаю где поломка.wav.meta => Я совсем забыл, я же не знаю где поломка.wav.meta} (91%) create mode 100644 Assets/images/avatars.meta create mode 100644 Assets/images/avatars/captainIcon.png create mode 100644 Assets/images/avatars/captainIcon.png.meta create mode 100644 Assets/images/avatars/pilotIcon.png create mode 100644 Assets/images/avatars/pilotIcon.png.meta create mode 100644 Assets/images/avatars/voiceAssistantIcon.png create mode 100644 Assets/images/avatars/voiceAssistantIcon.png.meta create mode 100644 Assets/prefabs/Dialog/avatars.meta create mode 100644 Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab create mode 100644 Assets/prefabs/Dialog/avatars/captainAvatar Variant.prefab.meta create mode 100644 Assets/prefabs/Dialog/avatars/pilotAvatar.prefab create mode 100644 Assets/prefabs/Dialog/avatars/pilotAvatar.prefab.meta create mode 100644 Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab create mode 100644 Assets/prefabs/Dialog/avatars/voiceAssistantAvatar Variant.prefab.meta create mode 100644 Assets/scripts/dialogSystem/DialogData.cs create mode 100644 Assets/scripts/dialogSystem/DialogData.cs.meta diff --git a/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav b/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav similarity index 100% rename from Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav rename to Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav diff --git a/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta b/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta similarity index 91% rename from Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta rename to Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta index 3c74822..0adefb0 100644 --- a/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta +++ b/Assets/Resources/audio/пилот/Я совсем забыл, я же не знаю где поломка.wav.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: f4b0a8f2836d299438e963287f02095a +guid: 2e31de0a81a86594c85511f19aa41794 AudioImporter: externalObjects: {} serializedVersion: 6 diff --git a/Assets/images/avatars.meta b/Assets/images/avatars.meta new file mode 100644 index 0000000..6d9a0b3 --- /dev/null +++ b/Assets/images/avatars.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: cb764beed74cec044ab9adab35638376 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/images/avatars/captainIcon.png b/Assets/images/avatars/captainIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..f756caff47de002265d7b41b07ffca4ad2568d16 GIT binary patch literal 28835 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 literal 0 HcmV?d00001 diff --git a/Assets/images/avatars/pilotIcon.png.meta b/Assets/images/avatars/pilotIcon.png.meta new file mode 100644 index 0000000..430b7ab --- /dev/null +++ b/Assets/images/avatars/pilotIcon.png.meta @@ -0,0 +1,120 @@ +fileFormatVersion: 2 +guid: 57d6ba117edc86a448219c2c49ffd072 +TextureImporter: + internalIDToNameTable: [] + externalObjects: {} + serializedVersion: 11 + mipmaps: + mipMapMode: 0 + enableMipMap: 0 + sRGBTexture: 1 + linearTexture: 0 + fadeOut: 0 + borderMipMap: 0 + mipMapsPreserveCoverage: 0 + alphaTestReferenceValue: 0.5 + mipMapFadeDistanceStart: 1 + mipMapFadeDistanceEnd: 3 + bumpmap: + convertToNormalMap: 0 + externalNormalMap: 0 + heightScale: 0.25 + normalMapFilter: 0 + isReadable: 0 + streamingMipmaps: 0 + streamingMipmapsPriority: 0 + vTOnly: 0 + grayScaleToAlpha: 0 + generateCubemap: 6 + cubemapConvolution: 0 + seamlessCubemap: 0 + textureFormat: 1 + maxTextureSize: 2048 + textureSettings: + serializedVersion: 2 + filterMode: -1 + aniso: -1 + mipBias: -100 + wrapU: 1 + wrapV: 1 + wrapW: -1 + nPOTScale: 0 + lightmap: 0 + compressionQuality: 50 + spriteMode: 1 + spriteExtrude: 1 + spriteMeshType: 1 + alignment: 0 + spritePivot: {x: 0.5, y: 0.5} + spritePixelsToUnits: 100 + spriteBorder: {x: 0, y: 0, z: 0, w: 0} + spriteGenerateFallbackPhysicsShape: 1 + alphaUsage: 1 + alphaIsTransparency: 1 + spriteTessellationDetail: -1 + textureType: 8 + textureShape: 1 + singleChannelComponent: 0 + flipbookRows: 1 + flipbookColumns: 1 + maxTextureSizeSet: 0 + compressionQualitySet: 0 + textureFormatSet: 0 + ignorePngGamma: 0 + applyGammaDecoding: 0 + platformSettings: + - serializedVersion: 3 + buildTarget: DefaultTexturePlatform + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Standalone + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + - serializedVersion: 3 + buildTarget: Android + maxTextureSize: 2048 + resizeAlgorithm: 0 + textureFormat: -1 + textureCompression: 1 + compressionQuality: 50 + crunchedCompression: 0 + allowsAlphaSplitting: 0 + overridden: 0 + androidETC2FallbackOverride: 0 + forceMaximumCompressionQuality_BC6H_BC7: 0 + spriteSheet: + serializedVersion: 2 + sprites: [] + outline: [] + physicsShape: [] + bones: [] + spriteID: 5e97eb03825dee720800000000000000 + internalID: 0 + vertices: [] + indices: + edges: [] + weights: [] + secondaryTextures: [] + spritePackingTag: + pSDRemoveMatte: 0 + pSDShowRemoveMatteOption: 0 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/images/avatars/voiceAssistantIcon.png b/Assets/images/avatars/voiceAssistantIcon.png new file mode 100644 index 0000000000000000000000000000000000000000..9e124c0fa46859c215e179e0503b3409478e48bd GIT binary patch literal 8088 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 m|7($~{s8mgVq#4yjeiI8N$BvJ0000 _stopsCommits; + private bool _play; void Awake() { - Debug.Log("shit"); _audioPlayer = gameObject.GetComponent(); _stopsCommits = new List(); } @@ -20,15 +20,20 @@ public class AudioPlayer : MonoBehaviour public void PlayAudio(AudioClip audio) { _audioPlayer.clip = audio; - _audioPlayer.Play(); + _audioPlayer.Play(); + _play = true; } void Update() { - if (!_audioPlayer.isPlaying) { + if (!_audioPlayer.isPlaying && _play) { + Debug.Log(_stopsCommits.Count.ToString() + "commits"); for (int i = 0; i < _stopsCommits.Count; ++i) { + if (_stopsCommits[i] == null) continue; _stopsCommits[i](); + _stopsCommits[i] = null; } _stopsCommits = new List(); + _play = false; } } } diff --git a/Assets/scripts/dialogSystem/AudioVisualizer.cs b/Assets/scripts/dialogSystem/AudioVisualizer.cs index ca10048..3f62adf 100644 --- a/Assets/scripts/dialogSystem/AudioVisualizer.cs +++ b/Assets/scripts/dialogSystem/AudioVisualizer.cs @@ -13,31 +13,85 @@ public class AudioVisualizer : MonoBehaviour _role = role; } } + private GameObject _avatar; + [SerializeField] + private GameObject _captainAvatar; + [SerializeField] + private GameObject _pilotAvatar; + [SerializeField] + private GameObject _voiceAssistantAvatar; private AudioVisualizerData data; [SerializeField] private Canvas _canvasOverlay; private AudioVisualizerData _visualizerData; - void Start() { if (GameObject.FindGameObjectsWithTag("dialog_canvas").Length == 0) { Instantiate(_canvasOverlay, Vector3.zero, Quaternion.identity); } } - public void changeAudioVisualizerData(AudioVisualizerData visualizerData) { + IEnumerator setText() { Text content = GameObject.FindGameObjectWithTag("dialog_content").GetComponent(); - content.text = visualizerData._text; - Text name = GameObject.FindGameObjectWithTag("dialog_name").GetComponent(); - switch (visualizerData._role) { - case Roles.CAPTAIN: - name.text = "Капитан"; - break; - case Roles.PILOT: - name.text = "Пилот"; - break; - case Roles.VOICE_ASSISTANT: - name.text = "Голосовой помощник"; - break; + content.text = ""; + foreach(char i in _visualizerData._text) { + content.text += i; + yield return new WaitForSeconds(0.05f); } } + string RoleToString(Roles role) { + string res = ""; + switch (role) { + case Roles.CAPTAIN: + res = "Капитан"; + break; + case Roles.PILOT: + res = "Пилот"; + break; + case Roles.VOICE_ASSISTANT: + res = "Голосовой помощник"; + break; + case Roles.CAPTAIN_IN_IMAGINATION: + res = "Капитан (воспоминание)"; + break; + case Roles.VOICE_ASSISTANT_IN_IMAGINATION: + res = "Elizabeth (воспоминание)"; + break; + } + return res; + } + IEnumerator setHeader() { + Text name = GameObject.FindGameObjectWithTag("dialog_name").GetComponent(); + name.text = ""; + string nameText = RoleToString(_visualizerData._role); + foreach(char i in nameText) { + name.text += i; + yield return new WaitForSeconds(0.05f); + } + } + public void changeAudioVisualizerData(AudioVisualizerData visualizerData) { + Canvas canvas = Object.FindObjectOfType(); + Text content = GameObject.FindGameObjectWithTag("dialog_content").GetComponent(); + _visualizerData = visualizerData; + StartCoroutine("setText"); + StartCoroutine("setHeader"); + Destroy(_avatar); + switch(visualizerData._role) { + case Roles.CAPTAIN: + _avatar = Instantiate(_captainAvatar, _captainAvatar.transform.position, Quaternion.identity); + break; + case Roles.PILOT: + _avatar = Instantiate(_pilotAvatar, _pilotAvatar.transform.position, Quaternion.identity); + break; + case Roles.VOICE_ASSISTANT: + _avatar = Instantiate(_voiceAssistantAvatar, _voiceAssistantAvatar.transform.position, Quaternion.identity); + break; + case Roles.CAPTAIN_IN_IMAGINATION: + _avatar = Instantiate(_captainAvatar, _captainAvatar.transform.position, Quaternion.identity); + break; + case Roles.VOICE_ASSISTANT_IN_IMAGINATION: + _avatar = Instantiate(_voiceAssistantAvatar, _voiceAssistantAvatar.transform.position, Quaternion.identity); + break; + } + _avatar.transform.SetParent(canvas.transform, false); + } } diff --git a/Assets/scripts/dialogSystem/DialogData.cs b/Assets/scripts/dialogSystem/DialogData.cs new file mode 100644 index 0000000..1a05591 --- /dev/null +++ b/Assets/scripts/dialogSystem/DialogData.cs @@ -0,0 +1,230 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +public static class DialogData{ + public static DialogDataClass[] FirstScene = { + new DialogDataClass( + "Ваш корабль поврежден, нужен срочный ремонт", + Roles.CAPTAIN, + Resources.Load("audio/капитан/ваш корабль поврежден") + ), + new DialogDataClass( + "Жду подробностей повреждения", + Roles.PILOT, + Resources.Load("audio/пилот/жду подробностей повреждения") + ), + new DialogDataClass( + "Подробности высланы вам на почту, проверьте", + Roles.CAPTAIN, + Resources.Load("audio/капитан/подробности высланы") + ) + }; + + public static DialogDataClass[] SecondSceneFirstAction = { + new DialogDataClass( + "Файл доставлен, в нем обнаружены повреждения", + Roles.VOICE_ASSISTANT, + Resources.Load("audio/голосовой помощник/Файл доставлен") + ), + new DialogDataClass( + "О черт, опять этот баг, надо будет написать админам чтобы уже наконец исправили проблемы с кодировками. Ладно, давай посмотрим, что тут случилось", + Roles.PILOT, + Resources.Load("audio/пилот/о черт, опять этот баг") + ) + }; + public static DialogDataClass[] SecondSceneSecondAction = { + new DialogDataClass( + "В этот раз файл поврежден очень сильно, надо его открыть и посмотреть что в нем сохранилось", + Roles.PILOT, + Resources.Load("audio/пилот/в этот раз файл порвежден очень сильно") + ), + }; + public static DialogDataClass[] ThirdSceneAction = { + new DialogDataClass( + "Elizabeth, сделай анализ утечек", + Roles.PILOT, + Resources.Load("audio/пилот/сделай анализ утечек") + ), + new DialogDataClass( + "Утечки в гиперпространстве, чтобы восстановить исходный файл вам надо немного помучаться", + Roles.VOICE_ASSISTANT, + Resources.Load("чтобы восстановить файл") + ), + new DialogDataClass( + "Пилот, мы приготовили тебе последнее твое задание, после которого мы все рискуем умереть и погубить весь экипаж, либо ты станешь настоящим специалистом своего дела и будешь командовать отделом", + Roles.CAPTAIN, + Resources.Load("audio/капитан/пилот, мы приготовили твое задание") + ), + new DialogDataClass( + "Какое задание?", + Roles.PILOT, + Resources.Load("audio/пилот/какое задание") + ), + new DialogDataClass( + "Устрани неисправности на корабле, тогда ты докажешь свой профессионализм", + Roles.CAPTAIN, + Resources.Load("audio/капитан/устрани неисправности") + ), + new DialogDataClass( + "Есть", + Roles.PILOT, + Resources.Load("audio/пилот/есть") + ) + }; + public static DialogDataClass[] FourthSceneFirstAction = { + new DialogDataClass( + "Для этого мне нужна карта корабля с нанесенными повреждениями, а она как назло не пришла в чистом виде, да еще это гиперпространство...", + Roles.PILOT, + Resources.Load("audio/пилот/для этого мне нужна карта корабля") + ) + }; + public static DialogDataClass[] FourthSceneSecondAction = { + new DialogDataClass( + "Точно, это двигательный отсек, в нем вечно происходят проблемы, но я не помню код от этого щитка", + Roles.PILOT, + Resources.Load("audio/пилот/Точно это двигательный отсек") + ), + new DialogDataClass( + "Ты на правильном пути, ученик мой, разгадай эту загадку тогда ты откроешь щиток", + Roles.CAPTAIN, + Resources.Load("audio/капитан/ты на правильном пути") + ) + }; + public static DialogDataClass[] FourthSceneThirdAction = { + new DialogDataClass( + "Молодец, ты открыл щиток", + Roles.CAPTAIN, + Resources.Load("audio/капитан/молодец, ты открыл щиток") + ), + new DialogDataClass( + "Спасибо, кэп", + Roles.PILOT, + Resources.Load("audio/пилот/спасибо, кэп") + ), + new DialogDataClass( + "О, кажется я нашел кусок файла, странно, как он мог затеряться в реальном мире, надо будет сообщить админам", + Roles.PILOT, + Resources.Load("audio/пилот/О, кажется я нашел кусок файла") + ) + }; + public static DialogDataClass[] FourthSceneFourthAction = { + new DialogDataClass( + "Отлично, давай посмотрим карту", + Roles.PILOT, + Resources.Load("audio/пилот/Отлично, давай посмотрим карту") + ) + }; + public static DialogDataClass[] FourthSceneFiftAction = { + new DialogDataClass( + "Здесь указано, куда идти, надо попробовать", + Roles.PILOT, + Resources.Load("audio/пилот/Здесь указано куда идти") + ) + }; + public static DialogDataClass[] FiftSceneAction = { + new DialogDataClass( + "Наконец-то я пришел к двигателю....но кажется есть проблема, тут очень темно, надо вернуться за фонариком", + Roles.PILOT, + Resources.Load("audio/пилот/наконец-то я пришел к двигателю") + ) + }; + public static DialogDataClass[] SixthSceneFirstAction = { + new DialogDataClass( + "Тааак, где тут фонарик? я его прятал где-то в ящиках, но их тут просто очень много, как мне их все посмотреть?", + Roles.PILOT, + Resources.Load("audio/пилот/таак, где тут фонарик") + ), + new DialogDataClass( + "Ты умрешь и погубишь весь экипаж", + Roles.CAPTAIN_IN_IMAGINATION, + Resources.Load("audio/капитан/устрани неисправности") + ), + new DialogDataClass( + "Надо срочно действовать, помоги мне найти среди этих ящиков фонарь", + Roles.PILOT, + Resources.Load("audio/пилот/Надо срочно действовать") + ), + }; + public static DialogDataClass[] SixthSceneSecondAction = { + new DialogDataClass( + "О, мы нашли фонарь, теперь давай скорее бежать чинить двигатель, хотя..", + Roles.PILOT, + Resources.Load("audio/пилот/О мы нашли фонарь") + ), + new DialogDataClass( + "Утечки в гиперпространстве, чтобы восстановить исходный файл вам придется НеМнОгО ПоМуЧаТьСя", + Roles.VOICE_ASSISTANT_IN_IMAGINATION, + Resources.Load("audio/голосовой помощник/чтобы восстановить файл") + ), + new DialogDataClass( + "Я совсем забыл, я же не знаю где поломка, а без нее я не смогу починить корабль, попробуй найти кусок карты в тех же ящиках что ты искал фонарь, может он затаился там", + Roles.PILOT, + Resources.Load("audio/пилот/Я совсем забыл, я же не знаю где поломка") + ) + }; + public static DialogDataClass[] SixthSceneThirdAction = { + new DialogDataClass( + "ООО, вот и кусок карты", + Roles.PILOT, + Resources.Load("audio/пилот/О, вот и кусок карты") + ) + }; + public static DialogDataClass[] SixthSceneFourthAction = { + new DialogDataClass( + "Посмотри, теперь мы можем видеть, где поломка у корабля, пойдем скорее к двигателю и починим корабль.", + Roles.PILOT, + Resources.Load("audio/пилот/Смотри, теперь мы можем видеть, где поломка у корабля") + ) + }; + public static DialogDataClass[] SeventhSceneFirstAction = { + new DialogDataClass( + "Вот, мы у двигателя, все видно, в карте есть информация по поломке, дело за малым - починить двигатель. Хммм, но тут нужен явно гаечный ключ, надо открутить вот этот щиток.", + Roles.PILOT, + Resources.Load("audio/пилот/Вот мы у двигателя") + ), + new DialogDataClass( + "О нет, у нас совсем мало времени. Надо что-то срочно предпринять.", + Roles.PILOT, + Resources.Load("audio/пилот/о нет, у нас совсем мало времени") + ) + }; + public static DialogDataClass[] SeventhSceneSecondAction = { + new DialogDataClass( + "Хмм, что это за ящик, вечно этот штурман забудет что-нибудь убрать. Попробую открыть его, тут какая-то головоломка.", + Roles.PILOT, + Resources.Load("audio/пилот/мм, что это за ящик") + ), + }; + public static DialogDataClass[] SeventhSceneThirdAction = { + new DialogDataClass( + "Тут как раз есть ключ, надо его взять", + Roles.PILOT, + Resources.Load("audio/пилот/тут как раз есть ключ, надо его взять") + ), + }; + public static DialogDataClass[] EightScene = { + new DialogDataClass( + "Фух, получилось", + Roles.PILOT, + Resources.Load("audio/пилот/Фух, получилось") + ), + new DialogDataClass( + "Поздравляю, ты справился, я напишу приказ чтобы тебя повысили", + Roles.CAPTAIN, + Resources.Load("audio/капитан/поздравля, ты справился") + ) + }; +} + + +public struct DialogDataClass { + public string text; + public Roles role; + public AudioClip audio; + public DialogDataClass(string text, Roles role, AudioClip audio) { + this.text = text; + this.role = role; + this.audio = audio; + } +} \ No newline at end of file diff --git a/Assets/scripts/dialogSystem/DialogData.cs.meta b/Assets/scripts/dialogSystem/DialogData.cs.meta new file mode 100644 index 0000000..3f23fed --- /dev/null +++ b/Assets/scripts/dialogSystem/DialogData.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: f31da9a71ee5064488c04c9bdbb85a78 +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/scripts/dialogSystem/DialogPlayer.cs b/Assets/scripts/dialogSystem/DialogPlayer.cs index c95ce96..00dfa5d 100644 --- a/Assets/scripts/dialogSystem/DialogPlayer.cs +++ b/Assets/scripts/dialogSystem/DialogPlayer.cs @@ -10,42 +10,70 @@ public class DialogPlayer : MonoBehaviour AudioPlayer _audioPlayer; [SerializeField] AudioVisualizer _audioVisualizer; - private AudioClip _audio; + + DialogDataClass[] _dialogData; + + int _idx = 0; + Replica _currentReplica; + + void changeDialogData(DialogDataClass[] dialogData){ + _dialogData = dialogData; + _idx = 0; + _currentReplica = createReplica(); + _currentReplica.Play(); + } + + void playReplica(int idx) { + if (idx >= DialogData.FirstScene.Length) return; + //Debug.Log(idx.ToString() + DialogData.FirstScene[idx].text); + + Replica replica = new Replica( + DialogData.FirstScene[idx].audio, + new AudioVisualizer.AudioVisualizerData( + text: _dialogData[idx].text, + role: _dialogData[idx].role + ), + _audioPlayer, + () => { + Debug.Log(idx); + playReplica(idx+1); + }, + _audioVisualizer + ); + replica.Play(); + } + + Replica createReplica() { + Replica replica = new Replica( + _dialogData[_idx].audio, + new AudioVisualizer.AudioVisualizerData( + text: _dialogData[_idx].text, + role: _dialogData[_idx].role + ), + _audioPlayer, + () => {}, + _audioVisualizer + ); + return replica; + } + void Start() { - _audio = Resources.Load("audio/пилот/есть"); - Replica another_rep = new Replica( - _audio, - new AudioVisualizer.AudioVisualizerData( - "asdfsadf", - role: Roles.PILOT - ), - _audioPlayer, - - () => { - Debug.Log("fuck"); - }, - _audioVisualizer - ); - Replica rep = new Replica( - _audio, - new AudioVisualizer.AudioVisualizerData( - "Есть", - role: Roles.PILOT - ), - _audioPlayer, - - () => { - another_rep.Play(); - }, - _audioVisualizer - ); - rep.Play(); + _dialogData = DialogData.FirstScene; + _audioPlayer = Object.FindObjectOfType(); + _audioVisualizer = Object.FindObjectOfType(); + _currentReplica = createReplica(); + _currentReplica.Play(); } // Update is called once per frame void Update() { - + if (_idx >= _dialogData.Length-1) return; + if (_currentReplica.getIsEnded()) { + _idx++; + _currentReplica = createReplica(); + _currentReplica.Play(); + } } } diff --git a/Assets/scripts/dialogSystem/Replica.cs b/Assets/scripts/dialogSystem/Replica.cs index 0ef3fd4..889cf7e 100644 --- a/Assets/scripts/dialogSystem/Replica.cs +++ b/Assets/scripts/dialogSystem/Replica.cs @@ -8,11 +8,15 @@ public class Replica { private AudioPlayer.AudioPlayerStopsCommit _onStop; private AudioPlayer _audioPlayer; private AudioVisualizer _audioVisualizer; + private bool isEnded = false; + + public bool getIsEnded() { + return isEnded; + } public Replica(AudioClip clip, AudioVisualizer.AudioVisualizerData visualizerData, AudioPlayer audioPlayer, AudioPlayer.AudioPlayerStopsCommit onStop, AudioVisualizer audioVisualizer) { _clip = clip; _audioPlayer = audioPlayer; - _onStop = onStop; _audioVisualizer = audioVisualizer; _visualizerData = visualizerData; } @@ -20,7 +24,9 @@ public class Replica { public void Play() { _audioPlayer.PlayAudio(_clip); - _audioPlayer.addStopListener(_onStop); + _audioPlayer.addStopListener(() => { + isEnded = true; + }); _audioVisualizer.changeAudioVisualizerData(_visualizerData); } } diff --git a/Assets/scripts/dialogSystem/Roles.cs b/Assets/scripts/dialogSystem/Roles.cs index ed85866..896a206 100644 --- a/Assets/scripts/dialogSystem/Roles.cs +++ b/Assets/scripts/dialogSystem/Roles.cs @@ -5,5 +5,7 @@ using UnityEngine; public enum Roles { PILOT, VOICE_ASSISTANT, - CAPTAIN + CAPTAIN, + CAPTAIN_IN_IMAGINATION, + VOICE_ASSISTANT_IN_IMAGINATION } \ No newline at end of file