diff --git a/3d-generation-pipeline/README.md b/3d-generation-pipeline/README.md index 25e96a04..31810bee 100644 --- a/3d-generation-pipeline/README.md +++ b/3d-generation-pipeline/README.md @@ -2,18 +2,21 @@ * glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma * user flow: grab item? mida krabada * user prefs: settinguid meelde jätta -* võtta spawnitud mudeli mõõtmed: mehscollideri max x, max y, etc? bounding box? +* võtta spawnitud mudeli mõõtmed: meshcollideri max x, max y, etc? bounding box? * mängija collide'ib spawnitud mudeliga - ei tohiks * shape scanner: * initialisation correct number of confs * mitte-liigutatavaks, aga samal ajal kõrgus dünaamiliselt õige. või lihtsalt piisavalt madalale asetada või väljaulatuv kang millest krabada * peenikesemad kiired * mitte lihtsalt ontriggerenter ja -exit, sest kui mitu objekti lähevad samal ajal sisse + * kui mudel despawnib shape scanneri kiirte sees olles siis collision detection läheb katki * mustad kiired on halvasti nähtavad pruuni materjali taustal * kui üks config completed, siis mängijale aru saada: sound effect, "loading" -* mikri vana tekst ei kao ära +* speech-to-text: + * vana tekst ei kao ära + * kogu tekst muutub ootamatult "Silence"-iks * archery range: - * kui midagi laeb (wire aktiivne), siis particle'id voolavad mööda toru + * kui midagi laeb (wire aktiivne), siis particle'id võiks voolata mööda toru * highscore json tühjaks * quest marker järjest järgmise tegevuse kohal: mikrofon, siis nupud * character billboard: diff --git a/Assets/_PROJECT/Components/Bow/Scripts/ArcheryRange.cs b/Assets/_PROJECT/Components/Bow/Scripts/ArcheryRange.cs index 683b052d..884f422c 100644 --- a/Assets/_PROJECT/Components/Bow/Scripts/ArcheryRange.cs +++ b/Assets/_PROJECT/Components/Bow/Scripts/ArcheryRange.cs @@ -30,7 +30,6 @@ public class ArcheryRange : NetworkBehaviour public ArcheryRangeModelGenerationController modelGenerationController; public KeyboardManager keyboardManager; - public NPCController npcController; private List _targets; @@ -59,11 +58,6 @@ public class ArcheryRange : NetworkBehaviour StartCoroutine(DelayedSetHighScoreText(10f)); // Cannot immediately assign these values because fishnet needs time. } - private void Start() - { - npcController.StartTalking(); - } - private System.Collections.IEnumerator DelayedSetHighScoreText(float delaySeconds) { yield return new WaitForSeconds(delaySeconds); diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index faaca896..0a4353b2 100644 --- a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity +++ b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity @@ -1,3 +1,3 @@ version https://git-lfs.github.com/spec/v1 -oid sha256:a7ef2ab1a270d79a78f290ed20690c4e0b65168910521c1da33101e9b271e637 -size 67904744 +oid sha256:8e7134ad843bfc1613a90ca39e080ecc196866573586f6f6df67e273636d03aa +size 67905956 diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs index 51a8aec0..3f59e149 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs @@ -19,6 +19,7 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour public Material modelDisplayActiveMaterial; public Transform wire; public Material wireActiveMaterial; + public NPCController npcController; private bool modelGenerationInProgress; private EventInstance printingSound; @@ -56,6 +57,8 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour { modelGenerationButton.Deactivate(); } + + npcController.SpeakVoiceLine(3); } private async void InvokeModelGeneration() @@ -76,6 +79,7 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour GeneratedModel = spawnedObject; printingSound.setParameterByName("3DPrinterPrintingJob", 1); + npcController.SpeakVoiceLine(4); OnModelReady(); modelGenerationButton.Deactivate(); diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs index e57916de..75fe1499 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs @@ -8,6 +8,7 @@ public class MicrophoneStand : MonoBehaviour public GameObject microphoneOffStatus; public GameObject microphoneOnStatus; + public NPCController npcController; public FMODWhisperBridge fmodWhisperBridge; // Start is called before the first frame update @@ -35,6 +36,7 @@ public class MicrophoneStand : MonoBehaviour microphoneOffStatus.SetActive(false); microphoneOnStatus.SetActive(true); AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject); + npcController.SpeakVoiceLine(1); fmodWhisperBridge.ActivateRecording(); } } @@ -47,6 +49,7 @@ public class MicrophoneStand : MonoBehaviour microphoneOffStatus.SetActive(true); microphoneOnStatus.SetActive(false); AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject); + npcController.SpeakVoiceLine(2); fmodWhisperBridge.DeactivateRecording(); } } diff --git a/Assets/_PROJECT/Scripts/NPCController.cs b/Assets/_PROJECT/Scripts/NPCController.cs index 3f4a94e9..6527e518 100644 --- a/Assets/_PROJECT/Scripts/NPCController.cs +++ b/Assets/_PROJECT/Scripts/NPCController.cs @@ -1,4 +1,5 @@ using DG.Tweening; +using System.Collections; using Unity.XR.CoreUtils; using UnityEngine; @@ -13,7 +14,7 @@ public class NPCController : MonoBehaviour public float mouthScalingMultiplier = 2.5f; public float mouthMovementDuration = 0.25f; - public string voicelineKey; + public string[] voiceLineKeys; // Start is called before the first frame update void Awake() @@ -47,9 +48,11 @@ public class NPCController : MonoBehaviour if (controller != null) { playerTransform = controller.transform; + AudioManager.Instance.PlayDialogue(voiceLineKeys[0], gameObject); } else if (playerOrigin != null) { playerTransform = playerOrigin.transform; + AudioManager.Instance.PlayDialogue(voiceLineKeys[0], gameObject); } } @@ -67,6 +70,11 @@ public class NPCController : MonoBehaviour } } + public void SpeakVoiceLine(int voiceLineId) + { + AudioManager.Instance.PlayDialogue(voiceLineKeys[voiceLineId], gameObject); + } + public void StartTalking() { isTalking = true;