diff --git a/3d-generation-pipeline/README.md b/3d-generation-pipeline/README.md index 69718a96..25e96a04 100644 --- a/3d-generation-pipeline/README.md +++ b/3d-generation-pipeline/README.md @@ -1,11 +1,11 @@ ### TODO * glTF loading: vahetada ära shader Universal render pipelin Lit, mitte panna buildi kaasa glTf oma -* shape scanner initialisation correct number of confs * 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? * 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 diff --git a/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity b/Assets/_PROJECT/Scenes/DeltaBuilding_base.unity index d0d498ab..faaca896 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:9d45908cdaa0aad4f1c00fe4b7da892b119f6b380b95301023ecb7f3e6a40f66 -size 67898653 +oid sha256:a7ef2ab1a270d79a78f290ed20690c4e0b65168910521c1da33101e9b271e637 +size 67904744 diff --git a/Assets/_PROJECT/Scripts/Audio/FMODEvents.cs b/Assets/_PROJECT/Scripts/Audio/FMODEvents.cs index 05eac116..4eee4ea6 100644 --- a/Assets/_PROJECT/Scripts/Audio/FMODEvents.cs +++ b/Assets/_PROJECT/Scripts/Audio/FMODEvents.cs @@ -22,7 +22,9 @@ public class FMODEvents : MonoBehaviour [field: SerializeField] public EventReference BowGrab { get; private set; } [field: SerializeField] public EventReference Spray { get; private set; } [field: SerializeField] public EventReference Coughing { get; private set; } - //[field: SerializeField] public EventReference MyNewSoundEffect { get; private set; } + [field: SerializeField] public EventReference KitchenPlate { get; private set; } + [field: SerializeField] public EventReference ShapeScannerSuccess { get; private set; } + [field: SerializeField] public EventReference Printing { get; private set; } [field: Header("CAR")] [field: SerializeField] public EventReference DoorOpen { get; private set; } @@ -35,6 +37,7 @@ public class FMODEvents : MonoBehaviour [field: SerializeField] public EventReference Hover { get; private set; } [field: SerializeField] public EventReference LetterEnter { get; private set; } [field: SerializeField] public EventReference LetterHover { get; private set; } + [field: SerializeField] public EventReference RadioButton { get; private set; } [field: Header("Initial events")] [field: SerializeField] public EventReference PortalSpacial { get; private set; } diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs index 7e23d5bb..51a8aec0 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/ArcheryRangeModelGenerationController.cs @@ -1,6 +1,7 @@ using System; using UnityEngine; using UnityEngine.UI; +using FMOD.Studio; public class ArcheryRangeModelGenerationController : MonoBehaviour { @@ -20,6 +21,7 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour public Material wireActiveMaterial; private bool modelGenerationInProgress; + private EventInstance printingSound; // Start is called before the first frame update void Start() @@ -27,6 +29,9 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour imageGenerationButton.OnButtonPressed += InvokeImageGeneration; modelGenerationButton.OnButtonPressed += InvokeModelGeneration; modelGenerationInProgress = false; + + printingSound = AudioManager.Instance.CreateInstance(FMODEvents.Instance.Printing); + printingSound.setParameterByName("3DPrinterPrintingJob", 1); } // Update is called once per frame @@ -56,6 +61,10 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour private async void InvokeModelGeneration() { modelGenerationInProgress = true; + + printingSound.start(); + printingSound.setParameterByName("3DPrinterPrintingJob", 0); + string encodedTexture = Convert.ToBase64String(GeneratedTexture.EncodeToJPG()); byte[] encodedModel = await TrellisClient.Instance.GenerateModel(encodedTexture); @@ -66,6 +75,8 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour spawnedObject.transform.position = modelDisplay.position; GeneratedModel = spawnedObject; + printingSound.setParameterByName("3DPrinterPrintingJob", 1); + OnModelReady(); modelGenerationButton.Deactivate(); modelGenerationInProgress = false; @@ -79,5 +90,6 @@ public class ArcheryRangeModelGenerationController : MonoBehaviour } modelDisplay.GetComponent().material = modelDisplayActiveMaterial; + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject); } } diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs index 848831f2..e57916de 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ArcheryRange/MicrophoneStand.cs @@ -34,6 +34,7 @@ public class MicrophoneStand : MonoBehaviour { microphoneOffStatus.SetActive(false); microphoneOnStatus.SetActive(true); + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject); fmodWhisperBridge.ActivateRecording(); } } @@ -45,6 +46,7 @@ public class MicrophoneStand : MonoBehaviour { microphoneOffStatus.SetActive(true); microphoneOnStatus.SetActive(false); + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.RadioButton, gameObject); fmodWhisperBridge.DeactivateRecording(); } } diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs b/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs index 76e0a182..877b3e7e 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/PushableButton.cs @@ -57,6 +57,7 @@ public class PushableButton : MonoBehaviour { movableParts.DOLocalMoveY(downPositionY, moveDuration); isButtonDown = true; + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject); if (wire != null) { @@ -71,6 +72,7 @@ public class PushableButton : MonoBehaviour { movableParts.DOLocalMoveY(upPositionY, moveDuration); isButtonDown = false; + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.Click, gameObject); if (wire != null) { diff --git a/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/ShapeScanner.cs b/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/ShapeScanner.cs index fad1a6f6..8974a915 100644 --- a/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/ShapeScanner.cs +++ b/Assets/_PROJECT/Scripts/ModeGeneration/ShapeDetection/ShapeScanner.cs @@ -97,6 +97,8 @@ public class ShapeScanner : MonoBehaviour rayCount = configuration.rows.SelectMany(row => row.cells).Count(); correctRayStates = configuration.rows.SelectMany(row => row.cells).Count(cell => !cell); UpdateDisplay(calculateCorrectPercentage()); + + AudioManager.Instance.PlayAttachedInstance(FMODEvents.Instance.ShapeScannerSuccess, gameObject); } private float calculateCorrectPercentage() diff --git a/Assets/_PROJECT/Scripts/NPCController.cs b/Assets/_PROJECT/Scripts/NPCController.cs index 60912fb5..3f4a94e9 100644 --- a/Assets/_PROJECT/Scripts/NPCController.cs +++ b/Assets/_PROJECT/Scripts/NPCController.cs @@ -13,6 +13,8 @@ public class NPCController : MonoBehaviour public float mouthScalingMultiplier = 2.5f; public float mouthMovementDuration = 0.25f; + public string voicelineKey; + // Start is called before the first frame update void Awake() { @@ -22,6 +24,11 @@ public class NPCController : MonoBehaviour isTalking = false; } + void Start() + { + + } + // Update is called once per frame void Update() {