diff --git a/Assets/GameUIController.cs b/Assets/GameUIController.cs index aa01b35..8e49533 100644 --- a/Assets/GameUIController.cs +++ b/Assets/GameUIController.cs @@ -5,9 +5,11 @@ using TMPro; using UnityEngine; using UnityEngine.UI; using DG.Tweening; +using UnityEngine.SceneManagement; public class GameUIController : MonoBehaviour { + [SerializeField] private Button exitButton; [SerializeField] private GameObject retryButton; [SerializeField] private TMP_Text playerANameText; [SerializeField] private TMP_Text playerBNameText; @@ -31,12 +33,23 @@ public class GameUIController : MonoBehaviour private void Start() { _multiplayManager = GameManager.Instance.GetMultiplayManager(); + + if (exitButton != null) + { + exitButton.onClick.AddListener(OnClickExitButton); + } } public void OnClickConfirmButton() { GameManager.Instance.OnClickConfirmButton(); } + + public void OnClickExitButton() + { + // "Main" 씬으로 이동 + SceneManager.LoadScene("Main"); + } public void OnClickSurrenderButton() { diff --git a/Assets/Resources/Prefabs/[Canvas] Game UI.prefab b/Assets/Resources/Prefabs/[Canvas] Game UI.prefab index a8b585e..efff5d1 100644 --- a/Assets/Resources/Prefabs/[Canvas] Game UI.prefab +++ b/Assets/Resources/Prefabs/[Canvas] Game UI.prefab @@ -608,7 +608,7 @@ MonoBehaviour: m_Calls: - m_Target: {fileID: 3933575647777291622} m_TargetAssemblyTypeName: GameUIController, Assembly-CSharp - m_MethodName: + m_MethodName: OnClickExitButton m_Mode: 1 m_Arguments: m_ObjectArgument: {fileID: 0} @@ -2497,7 +2497,7 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 35a536dce57360441898a57e5d5a1335, type: 3} m_Name: m_EditorClassIdentifier: - retryButton: {fileID: 0} + exitButton: {fileID: 2183639868091494604} playerANameText: {fileID: 4888719462249568075} playerBNameText: {fileID: 5649645114775233136} indicatorA: {fileID: 822440635660578859} diff --git a/Assets/Resources/Sounds/ErrorSound.mp3 b/Assets/Resources/Sounds/ErrorSound.mp3 new file mode 100644 index 0000000..1b69267 Binary files /dev/null and b/Assets/Resources/Sounds/ErrorSound.mp3 differ diff --git a/Assets/Resources/Sounds/ErrorSound.mp3.meta b/Assets/Resources/Sounds/ErrorSound.mp3.meta new file mode 100644 index 0000000..f70f5de --- /dev/null +++ b/Assets/Resources/Sounds/ErrorSound.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 8b6eda2c005124d48a7b862a955c2ac1 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/RatingDownSound.mp3 b/Assets/Resources/Sounds/RatingDownSound.mp3 new file mode 100644 index 0000000..4e2a3ae Binary files /dev/null and b/Assets/Resources/Sounds/RatingDownSound.mp3 differ diff --git a/Assets/Resources/Sounds/RatingDownSound.mp3.meta b/Assets/Resources/Sounds/RatingDownSound.mp3.meta new file mode 100644 index 0000000..c5d5ac2 --- /dev/null +++ b/Assets/Resources/Sounds/RatingDownSound.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: d946cc47f6d6a8348ad0c8bdf8dc0afe +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/RatingSound.mp3 b/Assets/Resources/Sounds/RatingSound.mp3 new file mode 100644 index 0000000..7cf3561 Binary files /dev/null and b/Assets/Resources/Sounds/RatingSound.mp3 differ diff --git a/Assets/Resources/Sounds/RatingSound.mp3.meta b/Assets/Resources/Sounds/RatingSound.mp3.meta new file mode 100644 index 0000000..3c290a7 --- /dev/null +++ b/Assets/Resources/Sounds/RatingSound.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 6b8dc6e53098cf8479a556c57166c0dc +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/RatingUpSound.mp3 b/Assets/Resources/Sounds/RatingUpSound.mp3 new file mode 100644 index 0000000..b5a300c Binary files /dev/null and b/Assets/Resources/Sounds/RatingUpSound.mp3 differ diff --git a/Assets/Resources/Sounds/RatingUpSound.mp3.meta b/Assets/Resources/Sounds/RatingUpSound.mp3.meta new file mode 100644 index 0000000..e132c52 --- /dev/null +++ b/Assets/Resources/Sounds/RatingUpSound.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 314c364bf0413db4e871e937f6065d9c +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/StoneSound.mp3 b/Assets/Resources/Sounds/StoneSound1.mp3 similarity index 100% rename from Assets/Resources/Sounds/StoneSound.mp3 rename to Assets/Resources/Sounds/StoneSound1.mp3 diff --git a/Assets/Resources/Sounds/StoneSound.mp3.meta b/Assets/Resources/Sounds/StoneSound1.mp3.meta similarity index 100% rename from Assets/Resources/Sounds/StoneSound.mp3.meta rename to Assets/Resources/Sounds/StoneSound1.mp3.meta diff --git a/Assets/Resources/Sounds/StoneSound2.mp3 b/Assets/Resources/Sounds/StoneSound2.mp3 new file mode 100644 index 0000000..e72b094 Binary files /dev/null and b/Assets/Resources/Sounds/StoneSound2.mp3 differ diff --git a/Assets/Resources/Sounds/StoneSound2.mp3.meta b/Assets/Resources/Sounds/StoneSound2.mp3.meta new file mode 100644 index 0000000..a878e63 --- /dev/null +++ b/Assets/Resources/Sounds/StoneSound2.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 4d09a9fde068d764d96f25c744b808e6 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/StoneSound3.mp3 b/Assets/Resources/Sounds/StoneSound3.mp3 new file mode 100644 index 0000000..b5f9feb Binary files /dev/null and b/Assets/Resources/Sounds/StoneSound3.mp3 differ diff --git a/Assets/Resources/Sounds/StoneSound3.mp3.meta b/Assets/Resources/Sounds/StoneSound3.mp3.meta new file mode 100644 index 0000000..135479e --- /dev/null +++ b/Assets/Resources/Sounds/StoneSound3.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: a0eb62de2ee82f44b9f56bc99bc49cf4 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/StoneSound4.mp3 b/Assets/Resources/Sounds/StoneSound4.mp3 new file mode 100644 index 0000000..b431a62 Binary files /dev/null and b/Assets/Resources/Sounds/StoneSound4.mp3 differ diff --git a/Assets/Resources/Sounds/StoneSound4.mp3.meta b/Assets/Resources/Sounds/StoneSound4.mp3.meta new file mode 100644 index 0000000..814618a --- /dev/null +++ b/Assets/Resources/Sounds/StoneSound4.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 602218e89f800b5409e1db0adbe3b7e9 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/StoneSound5.mp3 b/Assets/Resources/Sounds/StoneSound5.mp3 new file mode 100644 index 0000000..1621fd3 Binary files /dev/null and b/Assets/Resources/Sounds/StoneSound5.mp3 differ diff --git a/Assets/Resources/Sounds/StoneSound5.mp3.meta b/Assets/Resources/Sounds/StoneSound5.mp3.meta new file mode 100644 index 0000000..ed6c882 --- /dev/null +++ b/Assets/Resources/Sounds/StoneSound5.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: a1cd5f8e7c3c90b47bf7d39de60e83dd +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/StoneSound6.mp3 b/Assets/Resources/Sounds/StoneSound6.mp3 new file mode 100644 index 0000000..b9634a5 Binary files /dev/null and b/Assets/Resources/Sounds/StoneSound6.mp3 differ diff --git a/Assets/Resources/Sounds/StoneSound6.mp3.meta b/Assets/Resources/Sounds/StoneSound6.mp3.meta new file mode 100644 index 0000000..3c5771b --- /dev/null +++ b/Assets/Resources/Sounds/StoneSound6.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: 404172c1dace08449b9ba215dd1e4e7a +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/StoneSound7.mp3 b/Assets/Resources/Sounds/StoneSound7.mp3 new file mode 100644 index 0000000..e1bef83 Binary files /dev/null and b/Assets/Resources/Sounds/StoneSound7.mp3 differ diff --git a/Assets/Resources/Sounds/StoneSound7.mp3.meta b/Assets/Resources/Sounds/StoneSound7.mp3.meta new file mode 100644 index 0000000..2883e62 --- /dev/null +++ b/Assets/Resources/Sounds/StoneSound7.mp3.meta @@ -0,0 +1,23 @@ +fileFormatVersion: 2 +guid: ffa674672ea5fdd438dc98a27b2394b7 +AudioImporter: + externalObjects: {} + serializedVersion: 7 + defaultSettings: + serializedVersion: 2 + loadType: 0 + sampleRateSetting: 0 + sampleRateOverride: 44100 + compressionFormat: 1 + quality: 1 + conversionMode: 0 + preloadAudioData: 0 + platformSettingOverrides: {} + forceToMono: 0 + normalize: 1 + loadInBackground: 0 + ambisonic: 0 + 3D: 1 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/Sounds/WinSound.mp3 b/Assets/Resources/Sounds/WinSound.mp3 index 6c1153f..2fef238 100644 Binary files a/Assets/Resources/Sounds/WinSound.mp3 and b/Assets/Resources/Sounds/WinSound.mp3 differ diff --git a/Assets/Resources/Sounds/WinSound.mp3.meta b/Assets/Resources/Sounds/WinSound.mp3.meta index fb95f3c..9724d35 100644 --- a/Assets/Resources/Sounds/WinSound.mp3.meta +++ b/Assets/Resources/Sounds/WinSound.mp3.meta @@ -1,5 +1,5 @@ fileFormatVersion: 2 -guid: 1613a4bf934e4d043b4e50b1b74c16b5 +guid: 767120737a3407142b97ca108f21d1d1 AudioImporter: externalObjects: {} serializedVersion: 7 diff --git a/Assets/Script/Common/AudioManager.cs b/Assets/Script/Common/AudioManager.cs index 054e75d..a4f9d0b 100644 --- a/Assets/Script/Common/AudioManager.cs +++ b/Assets/Script/Common/AudioManager.cs @@ -121,7 +121,6 @@ public class AudioManager : Singleton PlayBGM(); } - // 클릭 사운드(SFX) 재생 public void PlayClickSound() { if (isPlaySFX && sfxAudioSource != null) @@ -130,7 +129,6 @@ public class AudioManager : Singleton } } - // 닫기 사운드(SFX) 재생 public void PlayCloseSound() { if (isPlaySFX && sfxAudioSource != null) @@ -191,7 +189,40 @@ public class AudioManager : Singleton { if (isPlaySFX && sfxAudioSource!=null) { - sfxAudioSource.PlayOneShot(GetAudioClip("StoneSound"), sfxVolume); + int randomIndex = UnityEngine.Random.Range(1, 8); + sfxAudioSource.PlayOneShot(GetAudioClip("StoneSound"+randomIndex), sfxVolume); + } + } + + public void PlayRatingSound() + { + if (isPlaySFX && sfxAudioSource!=null) + { + sfxAudioSource.PlayOneShot(GetAudioClip("RatingSound"), sfxVolume); + } + } + + public void PlayRatingUpSound() + { + if (isPlaySFX && sfxAudioSource!=null) + { + sfxAudioSource.PlayOneShot(GetAudioClip("RatingUpSound"), sfxVolume); + } + } + + public void PlayRatingDownSound() + { + if (isPlaySFX && sfxAudioSource!=null) + { + sfxAudioSource.PlayOneShot(GetAudioClip("RatingDownSound"), sfxVolume); + } + } + + public void PlayErrorSound() + { + if (isPlaySFX && sfxAudioSource!=null) + { + sfxAudioSource.PlayOneShot(GetAudioClip("ErrorSound"), sfxVolume); } } } \ No newline at end of file diff --git a/Assets/Script/Game/GameManager.cs b/Assets/Script/Game/GameManager.cs index a6a2f17..91a135b 100644 --- a/Assets/Script/Game/GameManager.cs +++ b/Assets/Script/Game/GameManager.cs @@ -57,6 +57,8 @@ public class GameManager : Singleton { if (_camera != null) { + AudioManager.Instance.PlayErrorSound(); //사운드 추가 + _camera.transform.DOShakePosition(0.5f, 0.5f).OnComplete(() => { _camera.transform.position = new Vector3(0,0,-10); diff --git a/Assets/Script/Game/GameUtility/GameRoutine.cs b/Assets/Script/Game/GameUtility/GameRoutine.cs index f8f4b54..9668342 100644 --- a/Assets/Script/Game/GameUtility/GameRoutine.cs +++ b/Assets/Script/Game/GameUtility/GameRoutine.cs @@ -36,6 +36,8 @@ public partial class GameLogic { if (_board[row, col] != Enums.PlayerType.None) return; + AudioManager.Instance.PlayStoneSound(); //사운드 추가 + switch (playerType) { case Enums.PlayerType.PlayerA: diff --git a/Assets/Script/UI/Effect/DrawEffectController.cs b/Assets/Script/UI/Effect/DrawEffectController.cs index 087645c..1b083eb 100644 --- a/Assets/Script/UI/Effect/DrawEffectController.cs +++ b/Assets/Script/UI/Effect/DrawEffectController.cs @@ -14,6 +14,8 @@ public class DrawEffectController : EffectController public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { + AudioManager.Instance.PlayDrawSound(); //사운드 추가 + gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); onEffectPanelEnded = onEffectPanelEnd; diff --git a/Assets/Script/UI/Effect/LoseEffectController.cs b/Assets/Script/UI/Effect/LoseEffectController.cs index e20cce3..7c15b13 100644 --- a/Assets/Script/UI/Effect/LoseEffectController.cs +++ b/Assets/Script/UI/Effect/LoseEffectController.cs @@ -14,6 +14,8 @@ public class LoseEffectController : EffectController public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { + AudioManager.Instance.PlayLoseSound(); //사운드 추가 + gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); onEffectPanelEnded = onEffectPanelEnd; diff --git a/Assets/Script/UI/Effect/RatingDownEffectController.cs b/Assets/Script/UI/Effect/RatingDownEffectController.cs index bf4c9b1..1aded72 100644 --- a/Assets/Script/UI/Effect/RatingDownEffectController.cs +++ b/Assets/Script/UI/Effect/RatingDownEffectController.cs @@ -14,6 +14,8 @@ public class RatingDownEffectController : EffectController public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { + AudioManager.Instance.PlayRatingDownSound(); //사운드 추가 + gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); onEffectPanelEnded = onEffectPanelEnd; diff --git a/Assets/Script/UI/Effect/RatingUpEffectController.cs b/Assets/Script/UI/Effect/RatingUpEffectController.cs index afd412d..b3a088c 100644 --- a/Assets/Script/UI/Effect/RatingUpEffectController.cs +++ b/Assets/Script/UI/Effect/RatingUpEffectController.cs @@ -16,6 +16,8 @@ public class RatingUpEffectController : EffectController public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { + AudioManager.Instance.PlayRatingUpSound(); //사운드 추가 + gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); onEffectPanelEnded = onEffectPanelEnd; diff --git a/Assets/Script/UI/Effect/WinEffectController.cs b/Assets/Script/UI/Effect/WinEffectController.cs index 1948fc9..9ec5f96 100644 --- a/Assets/Script/UI/Effect/WinEffectController.cs +++ b/Assets/Script/UI/Effect/WinEffectController.cs @@ -16,6 +16,8 @@ public class WinEffectController : EffectController public override void ShowEffect(OnEffectPanelEnded onEffectPanelEnd) { + AudioManager.Instance.PlayWinSound(); //사운드 추가 + gameObject.SetActive(true); cancellationTokenSource = new CancellationTokenSource(); onEffectPanelEnded = onEffectPanelEnd; diff --git a/Assets/Script/UI/PanelChildController/RatingPointsController.cs b/Assets/Script/UI/PanelChildController/RatingPointsController.cs index 24483f8..6843d14 100644 --- a/Assets/Script/UI/PanelChildController/RatingPointsController.cs +++ b/Assets/Script/UI/PanelChildController/RatingPointsController.cs @@ -32,6 +32,12 @@ public class RatingPointsController : MonoBehaviour sequence.Append( imageOBject.GetComponent().DOLocalRotate(new Vector3(0f, 90f, 0f), flipDuration).SetEase(Ease.InExpo)); + + sequence.AppendCallback(() => + { + AudioManager.Instance.PlayRatingSound(); //사운드 추가 + }); + sequence.Append( imageOBject.GetComponent().DOLocalRotate(Vector3.zero, flipDuration).SetEase(Ease.OutExpo)); sequence.Join(