From 59b0c3eb61fd298403210fd0df7c3540f9423d71 Mon Sep 17 00:00:00 2001 From: Samuel Asher Rivello <63511769+SamuelAsherRivello@users.noreply.github.com> Date: Thu, 3 Oct 2024 11:14:43 -0500 Subject: [PATCH] Add AudioManager from RMC Core. Play sound on jump. --- Unity/Assets/Documentation/ReadMe.asset | 3 +- .../RMC/[MyProject]/AudioManager.prefab | 63 ++++++++++++++++++ .../RMC/[MyProject]/AudioManager.prefab.meta | 7 ++ Unity/Assets/Scenes/Scene01_Intro.unity | 63 ++++++++++++++++++ .../Runtime/RMC/RMC.MyProject.Runtime.asmdef | 3 +- .../RMC/[MyProject]/Scenes/Scene01_Intro.cs | 37 +++++++++-- Unity/Assets/Settings/Audio.meta | 8 +++ .../Audio/AudioManagerConfiguration.asset | 25 +++++++ .../AudioManagerConfiguration.asset.meta | 8 +++ Unity/Assets/Settings/Audio/AudioMixer.mixer | 65 +++++++++++++++++++ .../Settings/Audio/AudioMixer.mixer.meta | 8 +++ Unity/Packages/manifest.json | 1 + Unity/Packages/packages-lock.json | 24 +++++++ 13 files changed, 309 insertions(+), 6 deletions(-) create mode 100644 Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab create mode 100644 Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab.meta create mode 100644 Unity/Assets/Settings/Audio.meta create mode 100644 Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset create mode 100644 Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset.meta create mode 100644 Unity/Assets/Settings/Audio/AudioMixer.mixer create mode 100644 Unity/Assets/Settings/Audio/AudioMixer.mixer.meta diff --git a/Unity/Assets/Documentation/ReadMe.asset b/Unity/Assets/Documentation/ReadMe.asset index b037c80..4aab933 100644 --- a/Unity/Assets/Documentation/ReadMe.asset +++ b/Unity/Assets/Documentation/ReadMe.asset @@ -53,7 +53,8 @@ MonoBehaviour: MenuItemPath: - TextHeading: Customize ReadMe TextSubheading: - TextBody: Open this Unity Inspector Window as 'Debug' to edit. + TextBody: Update this window to describe your next project. \nOpen this Unity + Inspector Window as 'Debug' to edit. LinkName: LinkUrl: PingObjectName: diff --git a/Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab b/Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab new file mode 100644 index 0000000..450cba5 --- /dev/null +++ b/Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab @@ -0,0 +1,63 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!1001 &160219988328831919 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 0} + m_Modifications: + - target: {fileID: 1485694314543369636, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_Name + value: AudioManager Variant + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalRotation.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalRotation.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalRotation.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5991711950516216268, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 7167726124109680841, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} + propertyPath: _audioManagerConfiguration + value: + objectReference: {fileID: 11400000, guid: 84e3777cf736f4647a3886e9d96e588f, type: 2} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: d9f3a039f34ef4640b8ebd19f3a1035e, type: 3} diff --git a/Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab.meta b/Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab.meta new file mode 100644 index 0000000..4b2ddd7 --- /dev/null +++ b/Unity/Assets/Prefabs/RMC/[MyProject]/AudioManager.prefab.meta @@ -0,0 +1,7 @@ +fileFormatVersion: 2 +guid: 634e4f2933e24b641aaa711771ef701a +PrefabImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Scenes/Scene01_Intro.unity b/Unity/Assets/Scenes/Scene01_Intro.unity index 9dc0ede..81efe4b 100644 --- a/Unity/Assets/Scenes/Scene01_Intro.unity +++ b/Unity/Assets/Scenes/Scene01_Intro.unity @@ -1164,11 +1164,74 @@ Transform: m_Children: - {fileID: 1756644693} - {fileID: 520134215} + - {fileID: 1920628842} - {fileID: 281978814} - {fileID: 1794521670} - {fileID: 2032229242} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1001 &1920628841 +PrefabInstance: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_Modification: + serializedVersion: 3 + m_TransformParent: {fileID: 1880782305} + m_Modifications: + - target: {fileID: 1632282325715588619, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_Name + value: AudioManager + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalPosition.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalPosition.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalPosition.z + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalRotation.w + value: 1 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalRotation.x + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalRotation.y + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalRotation.z + value: -0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalEulerAnglesHint.x + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalEulerAnglesHint.y + value: 0 + objectReference: {fileID: 0} + - target: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + propertyPath: m_LocalEulerAnglesHint.z + value: 0 + objectReference: {fileID: 0} + m_RemovedComponents: [] + m_RemovedGameObjects: [] + m_AddedGameObjects: [] + m_AddedComponents: [] + m_SourcePrefab: {fileID: 100100000, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} +--- !u!4 &1920628842 stripped +Transform: + m_CorrespondingSourceObject: {fileID: 5845638768416701027, guid: 634e4f2933e24b641aaa711771ef701a, type: 3} + m_PrefabInstance: {fileID: 1920628841} + m_PrefabAsset: {fileID: 0} --- !u!1 &2032229241 GameObject: m_ObjectHideFlags: 0 diff --git a/Unity/Assets/Scripts/Runtime/RMC/RMC.MyProject.Runtime.asmdef b/Unity/Assets/Scripts/Runtime/RMC/RMC.MyProject.Runtime.asmdef index a1ff63b..7ce2e18 100644 --- a/Unity/Assets/Scripts/Runtime/RMC/RMC.MyProject.Runtime.asmdef +++ b/Unity/Assets/Scripts/Runtime/RMC/RMC.MyProject.Runtime.asmdef @@ -2,7 +2,8 @@ "name": "RMC.MyProject.Runtime", "rootNamespace": "", "references": [ - "GUID:75469ad4d38634e559750d17036d5f7c" + "GUID:75469ad4d38634e559750d17036d5f7c", + "GUID:8d0b5587a0a8ae741afbfe3a79c2872a" ], "includePlatforms": [], "excludePlatforms": [], diff --git a/Unity/Assets/Scripts/Runtime/RMC/[MyProject]/Scenes/Scene01_Intro.cs b/Unity/Assets/Scripts/Runtime/RMC/[MyProject]/Scenes/Scene01_Intro.cs index 118f45a..e8b7103 100644 --- a/Unity/Assets/Scripts/Runtime/RMC/[MyProject]/Scenes/Scene01_Intro.cs +++ b/Unity/Assets/Scripts/Runtime/RMC/[MyProject]/Scenes/Scene01_Intro.cs @@ -1,3 +1,4 @@ +using RMC.Core.Audio; using RMC.MyProject.UI; using UnityEngine; using UnityEngine.InputSystem; @@ -35,6 +36,10 @@ public class Scene01_Intro : MonoBehaviour private InputAction _resetInputAction; // Unity Methods --------------------------------- + + /// + /// Runs once per Scene. Use for initialization + /// protected void Start() { Debug.Log($"{GetType().Name}.Start()"); @@ -52,16 +57,22 @@ protected void Start() } - + + /// + /// Runs every frame. Use for input/physics/gameplay + /// protected void Update() { HandleUserInput(); CheckPlayerFalling(); } - - + // Methods --------------------------------------- + + /// + /// Take user input from keyboard/mouse/gamepad + /// private void HandleUserInput() { Vector2 moveInputVector2 = _moveInputAction.ReadValue(); @@ -77,12 +88,18 @@ private void HandleUserInput() // Move with arrow keys / WASD / gamepad _playerRigidBody.AddForce(moveInputVector3 * _playerMoveSpeed, ForceMode.Acceleration); + + if (_moveInputAction.WasPerformedThisFrame()) + { + PlayAudioClip("Click01"); + } } if (_jumpInputAction.WasPerformedThisFrame()) { // Jump with spacebar / gamepad _playerRigidBody.AddForce(Vector3.up * _playerJumpSpeed, ForceMode.Impulse); + PlayAudioClip("Crud_Update01"); } if (_resetInputAction.IsPressed()) @@ -93,7 +110,9 @@ private void HandleUserInput() } - + /// + /// Check for out of bounds + /// private void CheckPlayerFalling() { if (_playerRigidBody.transform.position.y < -5) @@ -102,6 +121,16 @@ private void CheckPlayerFalling() SceneManager.LoadScene(SceneManager.GetActiveScene().buildIndex); } } + + + /// + /// Play system using the AudioManager imported via https://github.com/SamuelAsherRivello/rmc-core/ + /// + /// Must match AudioClip name within Assets/Settings/Audio/AudioManagerConfiguration.asset + private void PlayAudioClip(string audioClipName) + { + AudioManager.Instance.PlayAudioClip(audioClipName); + } // Event Handlers -------------------------------- } diff --git a/Unity/Assets/Settings/Audio.meta b/Unity/Assets/Settings/Audio.meta new file mode 100644 index 0000000..bc409f9 --- /dev/null +++ b/Unity/Assets/Settings/Audio.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 37069b5b22a99c64b84fa3ee8c5d6f03 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset b/Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset new file mode 100644 index 0000000..7e0b250 --- /dev/null +++ b/Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset @@ -0,0 +1,25 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!114 &11400000 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 0} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 8af061af9280c2848890866508270d2f, type: 3} + m_Name: AudioManagerConfiguration + m_EditorClassIdentifier: + _audioMixer: {fileID: 24100000, guid: f4ce6bd8d9df0cf4fa1f6d7f11decdfc, type: 2} + _audioClips: + - {fileID: 8300000, guid: 72ad0f0bcf1153d47bdc800e15f196dd, type: 3} + - {fileID: 8300000, guid: d8777303342133144b5136422b8d5bfb, type: 3} + - {fileID: 8300000, guid: 55caff1a64ae65f4abb6bc1dffda6573, type: 3} + - {fileID: 8300000, guid: 8d78801df0603264da7ffa53b8a8aa58, type: 3} + - {fileID: 8300000, guid: 3807a65efbb91454999558c71e1e6742, type: 3} + - {fileID: 8300000, guid: 458d12b2dd4f6a542b0c9066858b8274, type: 3} + - {fileID: 8300000, guid: 475b0e47c0f151e478be9cc2d0b632f1, type: 3} + - {fileID: 8300000, guid: 85ac00c1b8196244884b376513b47b5a, type: 3} + - {fileID: 8300000, guid: 42baeac335d7d5e408187ae8bd8a4071, type: 3} diff --git a/Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset.meta b/Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset.meta new file mode 100644 index 0000000..6151edc --- /dev/null +++ b/Unity/Assets/Settings/Audio/AudioManagerConfiguration.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 84e3777cf736f4647a3886e9d96e588f +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Assets/Settings/Audio/AudioMixer.mixer b/Unity/Assets/Settings/Audio/AudioMixer.mixer new file mode 100644 index 0000000..b0d1ba7 --- /dev/null +++ b/Unity/Assets/Settings/Audio/AudioMixer.mixer @@ -0,0 +1,65 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!241 &24100000 +AudioMixerController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: AudioMixer + m_OutputGroup: {fileID: 0} + m_MasterGroup: {fileID: 24300002} + m_Snapshots: + - {fileID: 24500006} + m_StartSnapshot: {fileID: 24500006} + m_SuspendThreshold: -80 + m_EnableSuspend: 1 + m_UpdateMode: 0 + m_ExposedParameters: [] + m_AudioMixerGroupViews: [] + m_CurrentViewIndex: 0 + m_TargetSnapshot: {fileID: 24500006} +--- !u!243 &24300002 +AudioMixerGroupController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Master + m_AudioMixer: {fileID: 24100000} + m_GroupID: 52a24beeb3a095941a55e56d37e6a680 + m_Children: [] + m_Volume: 2ec17efd827f95849ad1b0f2df9b05f8 + m_Pitch: 449e69caede325a49942da6b042b2004 + m_Send: 00000000000000000000000000000000 + m_Effects: + - {fileID: 24400004} + m_UserColorIndex: 0 + m_Mute: 0 + m_Solo: 0 + m_BypassEffects: 0 +--- !u!244 &24400004 +AudioMixerEffectController: + m_ObjectHideFlags: 3 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: + m_EffectID: 080420bdcd9a7d446b28826cad40aa1b + m_EffectName: Attenuation + m_MixLevel: 523847e0013ea914ebac94dcf7e01334 + m_Parameters: [] + m_SendTarget: {fileID: 0} + m_EnableWetMix: 0 + m_Bypass: 0 +--- !u!245 &24500006 +AudioMixerSnapshotController: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_Name: Snapshot + m_AudioMixer: {fileID: 24100000} + m_SnapshotID: 3e09aaa67c41666459fdd7a4e2ea4318 + m_FloatValues: {} + m_TransitionOverrides: {} diff --git a/Unity/Assets/Settings/Audio/AudioMixer.mixer.meta b/Unity/Assets/Settings/Audio/AudioMixer.mixer.meta new file mode 100644 index 0000000..4c11ce2 --- /dev/null +++ b/Unity/Assets/Settings/Audio/AudioMixer.mixer.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: f4ce6bd8d9df0cf4fa1f6d7f11decdfc +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 24100000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Unity/Packages/manifest.json b/Unity/Packages/manifest.json index 869b9dd..2e5f2a0 100644 --- a/Unity/Packages/manifest.json +++ b/Unity/Packages/manifest.json @@ -1,5 +1,6 @@ { "dependencies": { + "com.rmc.rmc-core": "1.6.6", "com.rmc.rmc-readme": "1.2.2", "com.unity.ai.navigation": "1.1.5", "com.unity.cinemachine": "2.10.1", diff --git a/Unity/Packages/packages-lock.json b/Unity/Packages/packages-lock.json index 8f1176f..f5d1664 100644 --- a/Unity/Packages/packages-lock.json +++ b/Unity/Packages/packages-lock.json @@ -1,5 +1,22 @@ { "dependencies": { + "com.rmc.rmc-core": { + "version": "1.6.6", + "depth": 0, + "source": "registry", + "dependencies": { + "com.rmc.rmc-newtonsoft.json-for-unity": "10.0.302", + "com.rmc.rmc-unitask": "2.3.32" + }, + "url": "https://registry.npmjs.org" + }, + "com.rmc.rmc-newtonsoft.json-for-unity": { + "version": "10.0.302", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://registry.npmjs.org" + }, "com.rmc.rmc-readme": { "version": "1.2.2", "depth": 0, @@ -7,6 +24,13 @@ "dependencies": {}, "url": "https://registry.npmjs.org" }, + "com.rmc.rmc-unitask": { + "version": "2.3.32", + "depth": 1, + "source": "registry", + "dependencies": {}, + "url": "https://registry.npmjs.org" + }, "com.unity.ai.navigation": { "version": "1.1.5", "depth": 0,