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,