From e3d2f81eecac712aa761ecd4a8b966ba9ea3facd Mon Sep 17 00:00:00 2001 From: Mingu Kim Date: Sat, 1 Mar 2025 18:57:49 +0900 Subject: [PATCH] =?UTF-8?q?=EC=82=AC=EC=9A=B4=EB=93=9C=20=EB=A7=A4?= =?UTF-8?q?=EB=8B=88=EC=A0=80=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Assets/Gameton/Scenes/Stage 4.unity | 45 +++++++++++++++++++ .../Gameton/Scripts/Monster/MonsterBase.cs | 10 ++++- Gameton-06/Assets/Gameton/Scripts/Sound.meta | 8 ++++ .../Gameton/Scripts/Sound/SoundManager.cs | 35 +++++++++++++++ .../Scripts/Sound/SoundManager.cs.meta | 11 +++++ 5 files changed, 108 insertions(+), 1 deletion(-) create mode 100644 Gameton-06/Assets/Gameton/Scripts/Sound.meta create mode 100644 Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs create mode 100644 Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs.meta diff --git a/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity b/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity index 53dd2f68..17ab3d44 100644 --- a/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity +++ b/Gameton-06/Assets/Gameton/Scenes/Stage 4.unity @@ -34277,6 +34277,50 @@ Transform: - {fileID: 1673487155} m_Father: {fileID: 0} m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &2068238027 +GameObject: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + serializedVersion: 6 + m_Component: + - component: {fileID: 2068238029} + - component: {fileID: 2068238028} + m_Layer: 0 + m_Name: SoundManager + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &2068238028 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068238027} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 023ac119be3a3d24c816494653c341dc, type: 3} + m_Name: + m_EditorClassIdentifier: +--- !u!4 &2068238029 +Transform: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2068238027} + serializedVersion: 2 + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 116.990395, y: -121.206154, z: 0.1832571} + m_LocalScale: {x: 1, y: 1, z: 1} + m_ConstrainProportionsScale: 0 + m_Children: [] + m_Father: {fileID: 0} + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2135657550 GameObject: m_ObjectHideFlags: 0 @@ -34383,3 +34427,4 @@ SceneRoots: - {fileID: 2067632268} - {fileID: 480895542} - {fileID: 1103604663} + - {fileID: 2068238029} diff --git a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs index 7466c2af..c91ad0f9 100644 --- a/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs +++ b/Gameton-06/Assets/Gameton/Scripts/Monster/MonsterBase.cs @@ -41,6 +41,10 @@ namespace TON private CharacterBase _characterBase; + public AudioClip _attackSound; + public AudioClip _deathSound; + public AudioClip _hitSound; + private void Start() { _animator = GetComponent(); // 애니메이터 컴포넌트 초기화 @@ -128,7 +132,9 @@ namespace TON { float prevHP = currentHP; // 몬스터의 체력을 감소시키고, 죽었을 경우 파괴 처리 currentHP -= damage; - + + SoundManager.instance.SFXPlay("Hit", _hitSound); + UpdateHPBar(currentHP); if (prevHP > 0 && currentHP <= 0) @@ -180,6 +186,7 @@ namespace TON _characterBase.ApplyDamage(damage); + SoundManager.instance.SFXPlay("Attack", _attackSound); // Debug.Log($" 몬스터 공격! 최종 데미지: {damage}"); // 데미지 출력 } @@ -218,6 +225,7 @@ namespace TON public void DestroyMonster() { RewardData(); + SoundManager.instance.SFXPlay("Death", _deathSound); Destroy(gameObject); // 몬스터 파괴 } diff --git a/Gameton-06/Assets/Gameton/Scripts/Sound.meta b/Gameton-06/Assets/Gameton/Scripts/Sound.meta new file mode 100644 index 00000000..67617f49 --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/Sound.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: e16344df7c8f56b4095502fb077d9f83 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs b/Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs new file mode 100644 index 00000000..2b096fe9 --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs @@ -0,0 +1,35 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace TON +{ + public class SoundManager : MonoBehaviour + { + public static SoundManager instance; + + private void Awake() + { + if (instance == null) + { + instance = this; + DontDestroyOnLoad(instance); + } + else + { + Destroy(gameObject); + } + } + + public void SFXPlay(string sfxName, AudioClip clip) + { + GameObject go = new GameObject(sfxName + "Sound"); + AudioSource audiosource = go.AddComponent(); + + audiosource.clip = clip; + audiosource.Play(); + + Destroy(go, clip.length); + } + } +} diff --git a/Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs.meta b/Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs.meta new file mode 100644 index 00000000..ce4522f4 --- /dev/null +++ b/Gameton-06/Assets/Gameton/Scripts/Sound/SoundManager.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 023ac119be3a3d24c816494653c341dc +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: