From aa28adf6b7c819515cd1ca90d79284ea0b25d515 Mon Sep 17 00:00:00 2001 From: yangjing Date: Thu, 10 Feb 2022 15:31:53 +0800 Subject: [PATCH] =?UTF-8?q?=E7=BB=93=E5=B1=80=E7=95=8C=E9=9D=A2=E5=92=8C?= =?UTF-8?q?=E8=AE=BE=E7=BD=AE=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Assets/Resources/AudioConfig.asset | 15 ++ Assets/Resources/AudioConfig.asset.meta | 8 ++ Assets/Resources/UIs/PanelEndings.prefab | 61 +++++++- Assets/Resources/UIs/PanelSettings.prefab | 83 ++++++++++- Assets/Scenes/Game.unity | 115 --------------- Assets/Scripts/Config.meta | 8 ++ Assets/Scripts/Config/AudioConfig.cs | 24 ++++ Assets/Scripts/Config/AudioConfig.cs.meta | 11 ++ Assets/Scripts/{Game => Config}/GameConfig.cs | 0 .../{Game => Config}/GameConfig.cs.meta | 0 Assets/Scripts/Core/AudioManager.cs | 134 +++++++----------- Assets/Scripts/Game/GameLogic.cs | 3 + Assets/Scripts/Storage/SettingData.cs | 4 +- Assets/Scripts/UI/PanelEndings.cs | 14 +- Assets/Scripts/UI/PanelGame.cs | 2 +- Assets/Scripts/UI/PanelSettings.cs | 55 +++++++ Assets/Scripts/Utils/UITools/UIUtils.cs | 2 +- .../ThirdPlugins/Easy Save 3/Scripts/ES3.cs | 4 +- 18 files changed, 332 insertions(+), 211 deletions(-) create mode 100644 Assets/Resources/AudioConfig.asset create mode 100644 Assets/Resources/AudioConfig.asset.meta create mode 100644 Assets/Scripts/Config.meta create mode 100644 Assets/Scripts/Config/AudioConfig.cs create mode 100644 Assets/Scripts/Config/AudioConfig.cs.meta rename Assets/Scripts/{Game => Config}/GameConfig.cs (100%) rename Assets/Scripts/{Game => Config}/GameConfig.cs.meta (100%) diff --git a/Assets/Resources/AudioConfig.asset b/Assets/Resources/AudioConfig.asset new file mode 100644 index 00000000..c6714ac5 --- /dev/null +++ b/Assets/Resources/AudioConfig.asset @@ -0,0 +1,15 @@ +%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: 4d4c1d4ac76fb492e9badc39ba99288c, type: 3} + m_Name: AudioConfig + m_EditorClassIdentifier: + AudioPacks: [] diff --git a/Assets/Resources/AudioConfig.asset.meta b/Assets/Resources/AudioConfig.asset.meta new file mode 100644 index 00000000..474791d2 --- /dev/null +++ b/Assets/Resources/AudioConfig.asset.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 1ff0f82994e5e4576a257be63655bbbb +NativeFormatImporter: + externalObjects: {} + mainObjectFileID: 11400000 + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Resources/UIs/PanelEndings.prefab b/Assets/Resources/UIs/PanelEndings.prefab index 84a3074c..bd922888 100644 --- a/Assets/Resources/UIs/PanelEndings.prefab +++ b/Assets/Resources/UIs/PanelEndings.prefab @@ -50,7 +50,9 @@ MonoBehaviour: m_Script: {fileID: 11500000, guid: 741067eec3eb640ab9247b4afaa129c1, type: 3} m_Name: m_EditorClassIdentifier: + mCvsBg: {fileID: 8520078760165912868} mRctBg: {fileID: 1696796731471630041} + mBtnMask: {fileID: 4612204363566831794} mGobComplete: {fileID: 1203140508178993450} mCtnEndings: {fileID: 9139824452088305493} mTplEndingCell: {fileID: 9139824452674523508} @@ -480,8 +482,9 @@ GameObject: - component: {fileID: 7547133403592927311} - component: {fileID: 815884272045072376} - component: {fileID: 7256335300793534673} + - component: {fileID: 4612204363566831794} m_Layer: 5 - m_Name: Mask + m_Name: Btn_Mask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -543,6 +546,49 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &4612204363566831794 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 5815201018659226921} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 1 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 7256335300793534673} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &7390142655579958459 GameObject: m_ObjectHideFlags: 0 @@ -554,6 +600,7 @@ GameObject: - component: {fileID: 1696796731471630041} - component: {fileID: 7390142655579958461} - component: {fileID: 7390142655579958460} + - component: {fileID: 8520078760165912868} m_Layer: 5 m_Name: Rct_Bg m_TagString: Untagged @@ -620,6 +667,18 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!225 &8520078760165912868 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 7390142655579958459} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &9139824451928607434 GameObject: m_ObjectHideFlags: 0 diff --git a/Assets/Resources/UIs/PanelSettings.prefab b/Assets/Resources/UIs/PanelSettings.prefab index 555b4c1e..686b7068 100644 --- a/Assets/Resources/UIs/PanelSettings.prefab +++ b/Assets/Resources/UIs/PanelSettings.prefab @@ -159,8 +159,9 @@ GameObject: - component: {fileID: 7881832265602893129} - component: {fileID: 1771596450703340243} - component: {fileID: 839138275584915616} + - component: {fileID: 330438927} m_Layer: 5 - m_Name: BG + m_Name: Rct_Bg m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -224,6 +225,18 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!225 &330438927 +CanvasGroup: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 2045426547071788843} + m_Enabled: 1 + m_Alpha: 1 + m_Interactable: 1 + m_BlocksRaycasts: 1 + m_IgnoreParentGroups: 0 --- !u!1 &2280471745191183687 GameObject: m_ObjectHideFlags: 0 @@ -309,8 +322,9 @@ GameObject: - component: {fileID: 1319856870369010655} - component: {fileID: 8196346127671563368} - component: {fileID: 2188311324050391873} + - component: {fileID: 1548826225} m_Layer: 5 - m_Name: Mask + m_Name: Btn_Mask m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -372,6 +386,49 @@ MonoBehaviour: m_FillOrigin: 0 m_UseSpriteMesh: 0 m_PixelsPerUnitMultiplier: 1 +--- !u!114 &1548826225 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 3052984836692922041} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} + m_Name: + m_EditorClassIdentifier: + m_Navigation: + m_Mode: 3 + m_SelectOnUp: {fileID: 0} + m_SelectOnDown: {fileID: 0} + m_SelectOnLeft: {fileID: 0} + m_SelectOnRight: {fileID: 0} + m_Transition: 0 + m_Colors: + m_NormalColor: {r: 1, g: 1, b: 1, a: 1} + m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} + m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} + m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} + m_ColorMultiplier: 1 + m_FadeDuration: 0.1 + m_SpriteState: + m_HighlightedSprite: {fileID: 0} + m_PressedSprite: {fileID: 0} + m_SelectedSprite: {fileID: 0} + m_DisabledSprite: {fileID: 0} + m_AnimationTriggers: + m_NormalTrigger: Normal + m_HighlightedTrigger: Highlighted + m_PressedTrigger: Pressed + m_SelectedTrigger: Selected + m_DisabledTrigger: Disabled + m_Interactable: 1 + m_TargetGraphic: {fileID: 2188311324050391873} + m_OnClick: + m_PersistentCalls: + m_Calls: [] --- !u!1 &4147851940758800685 GameObject: m_ObjectHideFlags: 0 @@ -386,7 +443,7 @@ GameObject: - component: {fileID: 4470773758526456285} - component: {fileID: 2044194172222428715} m_Layer: 5 - m_Name: Swt_Sound + m_Name: Tgl_Sound m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -595,7 +652,7 @@ GameObject: - component: {fileID: 6106867901024574516} - component: {fileID: 4736406679482743672} m_Layer: 5 - m_Name: Swt_BGM + m_Name: Tgl_BGM m_TagString: Untagged m_Icon: {fileID: 0} m_NavMeshLayer: 0 @@ -725,6 +782,7 @@ GameObject: serializedVersion: 6 m_Component: - component: {fileID: 9049642900839062097} + - component: {fileID: 818132997} m_Layer: 5 m_Name: PanelSettings m_TagString: Untagged @@ -753,3 +811,20 @@ RectTransform: m_AnchoredPosition: {x: 0, y: 0} m_SizeDelta: {x: 0, y: 0} m_Pivot: {x: 0.5, y: 0.5} +--- !u!114 &818132997 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_CorrespondingSourceObject: {fileID: 0} + m_PrefabInstance: {fileID: 0} + m_PrefabAsset: {fileID: 0} + m_GameObject: {fileID: 9049642900839062096} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 991cbe78974e044eaa5c72df761e2864, type: 3} + m_Name: + m_EditorClassIdentifier: + mCvsBg: {fileID: 330438927} + mRctBg: {fileID: 7881832265602893129} + mBtnMask: {fileID: 1548826225} + mTglBGM: {fileID: 4736406679482743672} + mTglSound: {fileID: 2044194172222428715} diff --git a/Assets/Scenes/Game.unity b/Assets/Scenes/Game.unity index d481daca..e7e26277 100644 --- a/Assets/Scenes/Game.unity +++ b/Assets/Scenes/Game.unity @@ -503,50 +503,6 @@ Transform: m_Father: {fileID: 1041748534} m_RootOrder: 0 m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} ---- !u!1 &1345696981 -GameObject: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - serializedVersion: 6 - m_Component: - - component: {fileID: 1345696984} - - component: {fileID: 1345696983} - m_Layer: 0 - m_Name: AudioManager - m_TagString: Untagged - m_Icon: {fileID: 0} - m_NavMeshLayer: 0 - m_StaticEditorFlags: 0 - m_IsActive: 1 ---- !u!114 &1345696983 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1345696981} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 1bdd22e611e6942489e40ead15305a34, type: 3} - m_Name: - m_EditorClassIdentifier: - soundPacks: [] ---- !u!4 &1345696984 -Transform: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 1345696981} - m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} - m_LocalPosition: {x: 0, y: 0, z: 0} - m_LocalScale: {x: 1, y: 1, z: 1} - m_Children: [] - m_Father: {fileID: 0} - m_RootOrder: 2 - m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} --- !u!1 &2101175958 GameObject: m_ObjectHideFlags: 0 @@ -901,55 +857,6 @@ PrefabInstance: objectReference: {fileID: 0} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 6ebd5f76171ee4e0b8d96b2eae97c251, type: 3} ---- !u!1 &4612204363566831793 stripped -GameObject: - m_CorrespondingSourceObject: {fileID: 5815201018659226921, guid: 25cbbba289b6a49d6916bc6215534770, - type: 3} - m_PrefabInstance: {fileID: 9139824453546146422} - m_PrefabAsset: {fileID: 0} ---- !u!114 &4612204363566831794 -MonoBehaviour: - m_ObjectHideFlags: 0 - m_CorrespondingSourceObject: {fileID: 0} - m_PrefabInstance: {fileID: 0} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4612204363566831793} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: 4e29b1a8efbd4b44bb3f3716e73f07ff, type: 3} - m_Name: - m_EditorClassIdentifier: - m_Navigation: - m_Mode: 3 - m_SelectOnUp: {fileID: 0} - m_SelectOnDown: {fileID: 0} - m_SelectOnLeft: {fileID: 0} - m_SelectOnRight: {fileID: 0} - m_Transition: 1 - m_Colors: - m_NormalColor: {r: 1, g: 1, b: 1, a: 1} - m_HighlightedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_PressedColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 1} - m_SelectedColor: {r: 0.9607843, g: 0.9607843, b: 0.9607843, a: 1} - m_DisabledColor: {r: 0.78431374, g: 0.78431374, b: 0.78431374, a: 0.5019608} - m_ColorMultiplier: 1 - m_FadeDuration: 0.1 - m_SpriteState: - m_HighlightedSprite: {fileID: 0} - m_PressedSprite: {fileID: 0} - m_SelectedSprite: {fileID: 0} - m_DisabledSprite: {fileID: 0} - m_AnimationTriggers: - m_NormalTrigger: Normal - m_HighlightedTrigger: Highlighted - m_PressedTrigger: Pressed - m_SelectedTrigger: Selected - m_DisabledTrigger: Disabled - m_Interactable: 1 - m_TargetGraphic: {fileID: 8359181633431606601} - m_OnClick: - m_PersistentCalls: - m_Calls: [] --- !u!224 &4946020809530057780 stripped RectTransform: m_CorrespondingSourceObject: {fileID: 6887168216434345711, guid: 841ca4be8d96342da81473d244f04f57, @@ -1161,18 +1068,6 @@ RectTransform: type: 3} m_PrefabInstance: {fileID: 1969282075732289138} m_PrefabAsset: {fileID: 0} ---- !u!114 &8359181633431606601 stripped -MonoBehaviour: - m_CorrespondingSourceObject: {fileID: 7256335300793534673, guid: 25cbbba289b6a49d6916bc6215534770, - type: 3} - m_PrefabInstance: {fileID: 9139824453546146422} - m_PrefabAsset: {fileID: 0} - m_GameObject: {fileID: 4612204363566831793} - m_Enabled: 1 - m_EditorHideFlags: 0 - m_Script: {fileID: 11500000, guid: fe87c0e1cc204ed48ad3b37840f39efc, type: 3} - m_Name: - m_EditorClassIdentifier: --- !u!1001 &9049642900195122466 PrefabInstance: m_ObjectHideFlags: 0 @@ -1419,15 +1314,5 @@ PrefabInstance: propertyPath: m_LocalEulerAnglesHint.z value: 0 objectReference: {fileID: 0} - - target: {fileID: 5815201018659226921, guid: 25cbbba289b6a49d6916bc6215534770, - type: 3} - propertyPath: m_Name - value: Btn_Mask - objectReference: {fileID: 0} - - target: {fileID: 7574580997828261420, guid: 25cbbba289b6a49d6916bc6215534770, - type: 3} - propertyPath: mBtnMask - value: - objectReference: {fileID: 4612204363566831794} m_RemovedComponents: [] m_SourcePrefab: {fileID: 100100000, guid: 25cbbba289b6a49d6916bc6215534770, type: 3} diff --git a/Assets/Scripts/Config.meta b/Assets/Scripts/Config.meta new file mode 100644 index 00000000..f33e271b --- /dev/null +++ b/Assets/Scripts/Config.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 76eb32aebfa5b4b90a63b60cc7958f79 +folderAsset: yes +DefaultImporter: + externalObjects: {} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Config/AudioConfig.cs b/Assets/Scripts/Config/AudioConfig.cs new file mode 100644 index 00000000..06c8185b --- /dev/null +++ b/Assets/Scripts/Config/AudioConfig.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +[CreateAssetMenu(menuName = "AudioConfig")] +public class AudioConfig : ConfigBase +{ + public List AudioPacks; +} + +[Serializable] +public class AudioPack +{ + public AudioType myType; + public List myClips; +} + +public enum AudioType +{ + None = -1, + + BGM +} diff --git a/Assets/Scripts/Config/AudioConfig.cs.meta b/Assets/Scripts/Config/AudioConfig.cs.meta new file mode 100644 index 00000000..47376aae --- /dev/null +++ b/Assets/Scripts/Config/AudioConfig.cs.meta @@ -0,0 +1,11 @@ +fileFormatVersion: 2 +guid: 4d4c1d4ac76fb492e9badc39ba99288c +MonoImporter: + externalObjects: {} + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/Assets/Scripts/Game/GameConfig.cs b/Assets/Scripts/Config/GameConfig.cs similarity index 100% rename from Assets/Scripts/Game/GameConfig.cs rename to Assets/Scripts/Config/GameConfig.cs diff --git a/Assets/Scripts/Game/GameConfig.cs.meta b/Assets/Scripts/Config/GameConfig.cs.meta similarity index 100% rename from Assets/Scripts/Game/GameConfig.cs.meta rename to Assets/Scripts/Config/GameConfig.cs.meta diff --git a/Assets/Scripts/Core/AudioManager.cs b/Assets/Scripts/Core/AudioManager.cs index fe12e731..0c22e45d 100644 --- a/Assets/Scripts/Core/AudioManager.cs +++ b/Assets/Scripts/Core/AudioManager.cs @@ -2,28 +2,25 @@ using System.Collections.Generic; using UnityEngine; -public class AudioManager : S_MonoSingleton +public class AudioManager : D_MonoSingleton { AudioListener mAudioListener; AudioSource mMusicPlayer; AudioSource mSoundPlayer; - public SoundPack[] soundPacks; - - private Dictionary> mSoundDic = new Dictionary>(); - private bool mIsSoundOn = true; + private Dictionary> mAudioDic = new Dictionary>(); protected override void Initialize() { - for (int i = 0; i < soundPacks.Length; i++) + for (int i = 0; i < AudioConfig.Instance.AudioPacks.Count; i++) { - SoundPack tPack = soundPacks[i]; - if (!mSoundDic.ContainsKey(tPack.myType)) + AudioPack tPack = AudioConfig.Instance.AudioPacks[i]; + if (!mAudioDic.ContainsKey(tPack.myType)) { - mSoundDic[tPack.myType] = new List(); + mAudioDic[tPack.myType] = new List(); } - mSoundDic[tPack.myType] = tPack.myClips; + mAudioDic[tPack.myType] = tPack.myClips; } CheckAudioListner(); @@ -31,29 +28,53 @@ public class AudioManager : S_MonoSingleton CheckSoundPlayer(); } + private void CheckAudioListner() + { + if (mAudioListener == null) + mAudioListener = gameObject.AddComponent(); + } + + private void CheckMusicPlayer() + { + if (mMusicPlayer == null) + mMusicPlayer = gameObject.AddComponent(); + } + + private void CheckSoundPlayer() + { + if (mSoundPlayer == null) + mSoundPlayer = gameObject.AddComponent(); + } + //private void Update() //{ - // if (AudioListener.pause && mIsSoundOn) + // if (AudioListener.pause && mIsListenerOn) // { // AudioListener.pause = false; // } - // else if (!AudioListener.pause && !mIsSoundOn) + // else if (!AudioListener.pause && !mIsListenerOn) // { // AudioListener.pause = true; // } //} - public void SetSoundOn(bool pIsOn) + public void SetListenerOn(bool pIsOn) { - mIsSoundOn = pIsOn; AudioListener.pause = !pIsOn; } - public void PlayBGMusic(SoundType pType, float pVolumeScale = 1) + public void SetMusicOn(bool pIsOn) { - if (!mIsSoundOn) - return; + mMusicPlayer.enabled = pIsOn; + } + public void SetSoundOn(bool pIsOn) + { + mSoundPlayer.enabled = pIsOn; + } + + public void PlayBGMusic(AudioType pType, float pVolumeScale = 1) + { CheckMusicPlayer(); AudioClip tClip = GetClip(pType); @@ -74,11 +95,8 @@ public class AudioManager : S_MonoSingleton mMusicPlayer.clip = null; } - public void PlaySound(SoundType pType, float pVolumeScale = 1) + public void PlaySound(AudioType pType, float pVolumeScale = 1) { - if (!mIsSoundOn) - return; - CheckSoundPlayer(); AudioClip tClip = GetClip(pType); @@ -90,9 +108,6 @@ public class AudioManager : S_MonoSingleton public void PlaySound(AudioClip pClip, float pVolumeScale = 1) { - if (!mIsSoundOn) - return; - CheckSoundPlayer(); AudioClip tClip = pClip; @@ -102,11 +117,17 @@ public class AudioManager : S_MonoSingleton mSoundPlayer.PlayOneShot(tClip, pVolumeScale); } - public AudioSource PlaySoundLoop(SoundType pType, float pVolumeScale = 1) + public void PlaySound3D(AudioSource pAudioSrc, AudioType pType) { - if (!mIsSoundOn) - return null; + AudioClip tClip = GetClip(pType); + if (tClip == null) + return; + pAudioSrc.PlayOneShot(tClip); + } + + public AudioSource PlaySoundLoop(AudioType pType, float pVolumeScale = 1) + { AudioClip tClip = GetClip(pType); if (tClip == null) return null; @@ -129,67 +150,14 @@ public class AudioManager : S_MonoSingleton Destroy(pAudioSrc); } - public void PlaySound3D(AudioSource pAudioSrc, SoundType pType) + private AudioClip GetClip(AudioType pType) { - if (!mIsSoundOn) - return; - - AudioClip tClip = GetClip(pType); - if (tClip == null) - return; - - pAudioSrc.PlayOneShot(tClip); - } - - private AudioClip GetClip(SoundType pType) - { - if (!mSoundDic.ContainsKey(pType) || mSoundDic[pType].Count == 0) + if (!mAudioDic.ContainsKey(pType) || mAudioDic[pType].Count == 0) return null; - List tClips = mSoundDic[pType]; + List tClips = mAudioDic[pType]; int tRandomPlayIndex = UnityEngine.Random.Range(0, tClips.Count); return tClips[tRandomPlayIndex]; } - - private void CheckAudioListner() - { - if (mAudioListener == null) - mAudioListener = gameObject.AddComponent(); - } - - private void CheckMusicPlayer() - { - if (mMusicPlayer == null) - mMusicPlayer = gameObject.AddComponent(); - } - - private void CheckSoundPlayer() - { - if (mSoundPlayer == null) - mSoundPlayer = gameObject.AddComponent(); - } -} - -[Serializable] -public class SoundPack -{ - public SoundType myType; - public List myClips; -} - -public enum SoundType -{ - None = -1, - - Kick_Normal, - Kick_Door, - Enemy_Die, - - Crumble_Wood, - Crumble_Pot, - Crumble_Wall, - - Fall_Water, - Bomb_Explode } \ No newline at end of file diff --git a/Assets/Scripts/Game/GameLogic.cs b/Assets/Scripts/Game/GameLogic.cs index df643941..267920b0 100644 --- a/Assets/Scripts/Game/GameLogic.cs +++ b/Assets/Scripts/Game/GameLogic.cs @@ -13,6 +13,9 @@ public class GameLogic : MonoBehaviour private void Start() { + AudioManager.Instance.SetMusicOn(SettingData.Instance.IsMusicOn); + AudioManager.Instance.SetSoundOn(SettingData.Instance.IsSoundOn); + PanelGame tUIGame = UIManager.Instance.OpenUI(); tUIGame.Init(); diff --git a/Assets/Scripts/Storage/SettingData.cs b/Assets/Scripts/Storage/SettingData.cs index 93d1f715..b00e1b0d 100644 --- a/Assets/Scripts/Storage/SettingData.cs +++ b/Assets/Scripts/Storage/SettingData.cs @@ -16,7 +16,7 @@ public class SettingData : StorageBase Save(); } } - [SerializeField] private bool mIsMusicOn; + [SerializeField] private bool mIsMusicOn = true; public bool IsSoundOn { @@ -30,5 +30,5 @@ public class SettingData : StorageBase Save(); } } - [SerializeField] private bool mIsSoundOn; + [SerializeField] private bool mIsSoundOn = true; } \ No newline at end of file diff --git a/Assets/Scripts/UI/PanelEndings.cs b/Assets/Scripts/UI/PanelEndings.cs index 371024c5..caf27ef7 100644 --- a/Assets/Scripts/UI/PanelEndings.cs +++ b/Assets/Scripts/UI/PanelEndings.cs @@ -2,11 +2,14 @@ using System.Collections.Generic; using UnityEngine; using UnityEngine.UI; +using DG.Tweening; public class PanelEndings : BasePanel { - [SerializeField] Button mBtnMask; + [SerializeField] CanvasGroup mCvsBg; [SerializeField] RectTransform mRctBg; + + [SerializeField] Button mBtnMask; [SerializeField] GameObject mGobComplete; [SerializeField] Transform mCtnEndings; [SerializeField] GameObject mTplEndingCell; @@ -31,6 +34,12 @@ public class PanelEndings : BasePanel mGobComplete.SetActive(PlayerData.Instance.EndingCountOfLevel(mLevelID) == mLvData.Endings.Count); RefreshEndingList(); + + mCvsBg.alpha = 0; + mRctBg.anchoredPosition = new Vector2(0, -100); + + mCvsBg.DOFade(1, 0.3f); + mRctBg.DOAnchorPosY(180, 0.3f); } private void RefreshEndingList() @@ -73,6 +82,7 @@ public class PanelEndings : BasePanel private void OnClickMask() { - Close(); + mCvsBg.DOFade(0, 0.3f); + mRctBg.DOAnchorPosY(-100, 0.3f).onComplete = Close; } } \ No newline at end of file diff --git a/Assets/Scripts/UI/PanelGame.cs b/Assets/Scripts/UI/PanelGame.cs index 9255eab0..915863e8 100644 --- a/Assets/Scripts/UI/PanelGame.cs +++ b/Assets/Scripts/UI/PanelGame.cs @@ -94,7 +94,7 @@ public class PanelGame : BasePanel private void OnClickMenu() { - + UIManager.Instance.OpenUI(); } private void OnClickEndings() diff --git a/Assets/Scripts/UI/PanelSettings.cs b/Assets/Scripts/UI/PanelSettings.cs index a32e4bf6..282d9611 100644 --- a/Assets/Scripts/UI/PanelSettings.cs +++ b/Assets/Scripts/UI/PanelSettings.cs @@ -1,8 +1,63 @@ using System.Collections; using System.Collections.Generic; using UnityEngine; +using UnityEngine.UI; +using DG.Tweening; public class PanelSettings : BasePanel { + [SerializeField] CanvasGroup mCvsBg; + [SerializeField] RectTransform mRctBg; + [SerializeField] Button mBtnMask; + [SerializeField] UIToggleSwap mTglBGM; + [SerializeField] UIToggleSwap mTglSound; + + private void Awake() + { + UIUtils.BindBtn(mBtnMask, OnClickMask); + } + + protected override void OnOpen() + { + base.OnOpen(); + + mTglBGM.OnSwitch += SwitchBGM; + mTglSound.OnSwitch += SwitchSound; + + mTglBGM.IsOn = SettingData.Instance.IsMusicOn; + mTglSound.IsOn = SettingData.Instance.IsSoundOn; + + mCvsBg.alpha = 0; + mRctBg.anchoredPosition = new Vector2(0, -100); + + mCvsBg.DOFade(1, 0.3f); + mRctBg.DOAnchorPosY(170, 0.3f); + } + + protected override void OnClose() + { + base.OnClose(); + + mTglBGM.OnSwitch -= SwitchBGM; + mTglSound.OnSwitch -= SwitchSound; + } + + private void SwitchBGM(bool pIsOn) + { + SettingData.Instance.IsMusicOn = pIsOn; + AudioManager.Instance.SetMusicOn(pIsOn); + } + + private void SwitchSound(bool pIsOn) + { + SettingData.Instance.IsSoundOn = pIsOn; + AudioManager.Instance.SetSoundOn(pIsOn); + } + + private void OnClickMask() + { + mCvsBg.DOFade(0, 0.3f); + mRctBg.DOAnchorPosY(-100, 0.3f).onComplete = Close; + } } \ No newline at end of file diff --git a/Assets/Scripts/Utils/UITools/UIUtils.cs b/Assets/Scripts/Utils/UITools/UIUtils.cs index 1baea0bc..bfb1034d 100644 --- a/Assets/Scripts/Utils/UITools/UIUtils.cs +++ b/Assets/Scripts/Utils/UITools/UIUtils.cs @@ -6,7 +6,7 @@ using UnityEngine.UI; public static class UIUtils { - public static void BindBtn(Button pBtn, UnityAction pDel, SoundType pSound = SoundType.None) + public static void BindBtn(Button pBtn, UnityAction pDel, AudioType pSound = AudioType.None) { pBtn.onClick.AddListener(pDel); } diff --git a/Assets/ThirdPlugins/Easy Save 3/Scripts/ES3.cs b/Assets/ThirdPlugins/Easy Save 3/Scripts/ES3.cs index 17d7f05b..df75a934 100644 --- a/Assets/ThirdPlugins/Easy Save 3/Scripts/ES3.cs +++ b/Assets/ThirdPlugins/Easy Save 3/Scripts/ES3.cs @@ -677,7 +677,7 @@ public static class ES3 /// The relative or absolute path of the audio file we want to load as an AudioClip. public static AudioClip LoadAudio(string audioFilePath #if UNITY_2018_3_OR_NEWER - , AudioType audioType + , UnityEngine.AudioType audioType #endif ) { @@ -693,7 +693,7 @@ public static class ES3 /// The settings we want to use to override the default settings. public static AudioClip LoadAudio(string audioFilePath, #if UNITY_2018_3_OR_NEWER - AudioType audioType, + UnityEngine.AudioType audioType, #endif ES3Settings settings) {