From 4837643426984fd15261ff1826896927f1ed864d Mon Sep 17 00:00:00 2001 From: Seraph Date: Sun, 12 Jun 2022 15:23:34 +0300 Subject: [PATCH] =?UTF-8?q?-=20=D0=A4=D1=96=D0=BA=D1=81=D0=B8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Ads/BridgeInterfaces/IBannerBridge.cs | 6 +-- .../BridgeInterfaces/IInterstitialBridge.cs | 9 ++-- .../Core/Ads/Bridges/DemoAds/DemoBannerAds.cs | 19 ++------- .../Bridges/DemoAds/DemoInterstitialAds.cs | 2 +- Assets_DLL/Core/Audio/AudioController.cs | 10 +++-- Assets_DLL/Core/Audio/AudioController2D.cs | 39 ++++++++++++++++-- Assets_DLL/Core/Audio/AudioController3D.cs | 6 +++ Assets_DLL/Core/Audio/PlayAudioFile.cs | 4 +- .../Core/SceneManagement/SceneLoader.cs | 3 ++ .../Core/obj/Debug/netstandard2.0/Core.dll | Bin 56832 -> 58368 bytes .../CoreEditor.csproj.AssemblyReference.cache | Bin 1172 -> 1172 bytes .../CoreEditor.csproj.CopyComplete | 0 12 files changed, 63 insertions(+), 35 deletions(-) create mode 100644 Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.CopyComplete diff --git a/Assets_DLL/Core/Ads/BridgeInterfaces/IBannerBridge.cs b/Assets_DLL/Core/Ads/BridgeInterfaces/IBannerBridge.cs index 1deb6ae..97f9ad3 100644 --- a/Assets_DLL/Core/Ads/BridgeInterfaces/IBannerBridge.cs +++ b/Assets_DLL/Core/Ads/BridgeInterfaces/IBannerBridge.cs @@ -1,11 +1,9 @@ -using UnityEngine; - -namespace Core.Ads.BridgeInterfaces +namespace Core.Ads.BridgeInterfaces { public interface IBannerBridge { + bool IsVisible(); void Show(BannerPositions position); void Hide(); - bool IsVisible(); } } \ No newline at end of file diff --git a/Assets_DLL/Core/Ads/BridgeInterfaces/IInterstitialBridge.cs b/Assets_DLL/Core/Ads/BridgeInterfaces/IInterstitialBridge.cs index 3dae8c4..9aca44f 100644 --- a/Assets_DLL/Core/Ads/BridgeInterfaces/IInterstitialBridge.cs +++ b/Assets_DLL/Core/Ads/BridgeInterfaces/IInterstitialBridge.cs @@ -1,11 +1,10 @@ -using System; -using UnityEngine; - -namespace Core.Ads.BridgeInterfaces +namespace Core.Ads.BridgeInterfaces { + public delegate void OnInterstitialEnded(); + public interface IInterstitialBridge { - Action OnEnded { get; set; } + event OnInterstitialEnded OnEnded; bool IsReady(); void Show(); bool IsVisible(); diff --git a/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoBannerAds.cs b/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoBannerAds.cs index 03bee88..f403e2d 100644 --- a/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoBannerAds.cs +++ b/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoBannerAds.cs @@ -42,22 +42,11 @@ namespace Core.Ads.Bridges.DemoAds private Vector2 CalculateBannerSize() { - int bannerHeight = 0; + float bannerSizePixels = Screen.height <= 400 ? 32 : Screen.height < 720 ? 50 : 90; + var percent = (100f / Screen.height) * bannerSizePixels; + var bannerSize = Screen.height * (percent / 100f); - if (Screen.height <= 400 * Mathf.RoundToInt(Screen.dpi / 160)) - { - bannerHeight = 32 * Mathf.RoundToInt(Screen.dpi / 160); - } - else if (Screen.height <= 720 * Mathf.RoundToInt(Screen.dpi / 160)) - { - bannerHeight = 50 * Mathf.RoundToInt(Screen.dpi / 160); - } - else - { - bannerHeight = 90 * Mathf.RoundToInt(Screen.dpi / 160); - } - - return new Vector2(bannerHeight * 6.4f, bannerHeight); + return new Vector2(bannerSize * 6.4f, bannerSize); } private Vector2 CalculateBannerPosition(Vector2 bannerSize) { diff --git a/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoInterstitialAds.cs b/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoInterstitialAds.cs index a3d4a55..618bd5c 100644 --- a/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoInterstitialAds.cs +++ b/Assets_DLL/Core/Ads/Bridges/DemoAds/DemoInterstitialAds.cs @@ -8,7 +8,7 @@ namespace Core.Ads.Bridges.DemoAds { public sealed class DemoInterstitialAds : MonoBehaviour, IInterstitialBridge { - public Action OnEnded { get; set; } + public event OnInterstitialEnded OnEnded = null; private bool _isInterstitialReady = false; diff --git a/Assets_DLL/Core/Audio/AudioController.cs b/Assets_DLL/Core/Audio/AudioController.cs index 2cf6421..ef7cbc4 100644 --- a/Assets_DLL/Core/Audio/AudioController.cs +++ b/Assets_DLL/Core/Audio/AudioController.cs @@ -9,6 +9,8 @@ namespace Core.Audio { public class AudioController : MonoBehaviour { + private static AudioController _controller = null; + private static AudioController2D _audio2D = null; private static AudioController3D _audio3D = null; @@ -16,7 +18,7 @@ namespace Core.Audio { GameObject audioParent = new GameObject("[AudioController]"); - audioParent.AddComponent(); + _controller = audioParent.AddComponent(); GameObject.DontDestroyOnLoad(audioParent); @@ -83,11 +85,11 @@ namespace Core.Audio } } - public static float PlayMusic(string name, bool isLoop = false) => - _audio2D.PlayMusic(name, isLoop); + public static void PlayMusic(string name) => + _controller.StartCoroutine(_audio2D.PlayMusic(name)); public static void StopMusic() => - _audio2D.StopMusic(); + _controller.StartCoroutine(_audio2D.StopMusic()); public static float PlaySound(string name, bool isLoop = false) => _audio2D.PlaySound(name, isLoop); diff --git a/Assets_DLL/Core/Audio/AudioController2D.cs b/Assets_DLL/Core/Audio/AudioController2D.cs index 9091512..c4f9344 100644 --- a/Assets_DLL/Core/Audio/AudioController2D.cs +++ b/Assets_DLL/Core/Audio/AudioController2D.cs @@ -5,6 +5,7 @@ using UnityEngine; using Core.Settings; using Core.Tools.Saves; using System; +using System.Collections; namespace Core.Audio { @@ -65,7 +66,7 @@ namespace Core.Audio } } - internal float PlayMusic(string name, bool isLoop = true) + internal IEnumerator PlayMusic(string name) { if (_musicSource == null) { @@ -74,23 +75,49 @@ namespace Core.Audio _musicSource.volume = CoreSettings.data.musicVolume * MusicVolume; } + while (_musicSource.volume > 0f) + { + yield return null; + _musicSource.volume -= Time.deltaTime / 2f; + } + + _musicSource.volume = 0; + if (_musicAndSounds.ContainsKey(name)) { _musicSource.clip = _musicAndSounds[name]; - _musicSource.loop = isLoop; + _musicSource.loop = true; _musicSource.gameObject.SetActive(true); + _musicSource.enabled = true; + _musicSource.Play(); - return _musicAndSounds[name].length; + while (_musicSource.volume < MusicVolume) + { + yield return null; + _musicSource.volume += Time.deltaTime / 2f; + } + + _musicSource.volume = MusicVolume; } else throw new ArgumentNullException($"music \"{name}\" not found"); } - internal void StopMusic() + internal IEnumerator StopMusic() { + while (_musicSource.volume > 0f) + { + yield return null; + _musicSource.volume -= Time.deltaTime / 2f; + } + + _musicSource.volume = 0; + _musicSource.Stop(); + + _musicSource.volume = MusicVolume; } internal float PlaySound(string name, bool isLoop = false) @@ -112,6 +139,8 @@ namespace Core.Audio playSource.loop = isLoop; playSource.gameObject.SetActive(true); + playSource.enabled = true; + playSource.Play(); return _musicAndSounds[name].length; @@ -149,6 +178,8 @@ namespace Core.Audio playSource.clip = _voicesDictionary[LocalizationManager.CurrentLanguage][name]; playSource.gameObject.SetActive(true); + playSource.enabled = true; + playSource.Play(); return _voicesDictionary[LocalizationManager.CurrentLanguage][name].length; diff --git a/Assets_DLL/Core/Audio/AudioController3D.cs b/Assets_DLL/Core/Audio/AudioController3D.cs index 707b910..9a6f020 100644 --- a/Assets_DLL/Core/Audio/AudioController3D.cs +++ b/Assets_DLL/Core/Audio/AudioController3D.cs @@ -52,6 +52,8 @@ namespace Core.Audio { AudioSource playSource = _soundsSources.Where(s => s != null && !s.isPlaying).FirstOrDefault(); + Debug.LogError($"enable: {playSource.enabled}, active: {playSource.gameObject.activeSelf}"); + if (playSource == null) { GameObject sound = new GameObject("Sound"); @@ -78,6 +80,8 @@ namespace Core.Audio playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f)); playSource.gameObject.SetActive(true); + playSource.enabled = true; + playSource.Play(); return _musicAndSounds[name].length; @@ -126,6 +130,8 @@ namespace Core.Audio playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f)); playSource.gameObject.SetActive(true); + playSource.enabled = true; + playSource.Play(); return _voicesDictionary[LocalizationManager.CurrentLanguage][name].length; diff --git a/Assets_DLL/Core/Audio/PlayAudioFile.cs b/Assets_DLL/Core/Audio/PlayAudioFile.cs index 79f422d..b2a89db 100644 --- a/Assets_DLL/Core/Audio/PlayAudioFile.cs +++ b/Assets_DLL/Core/Audio/PlayAudioFile.cs @@ -118,8 +118,8 @@ namespace Core.Audio { case AudioFileType.Music: - time = AudioController.PlayMusic(_audioFileNames[Random.Range(0, _audioFileNames.Length)], _loop); - break; + AudioController.PlayMusic(_audioFileNames[Random.Range(0, _audioFileNames.Length)]); + yield break; case AudioFileType.Sound: diff --git a/Assets_DLL/Core/SceneManagement/SceneLoader.cs b/Assets_DLL/Core/SceneManagement/SceneLoader.cs index 9da7da8..d5abafd 100644 --- a/Assets_DLL/Core/SceneManagement/SceneLoader.cs +++ b/Assets_DLL/Core/SceneManagement/SceneLoader.cs @@ -5,6 +5,7 @@ using UnityEngine.SceneManagement; using Core.Settings; using Core.Ads; using System.Linq; +using Core.Tools.Saves; namespace Core.SceneManagement { @@ -58,6 +59,8 @@ namespace Core.SceneManagement OnLoadedStart?.Invoke(scene); _current.StartCoroutine(StartLoad(scene)); + + SaveManager.Save(); } private static IEnumerator StartLoad(string scene) diff --git a/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.dll b/Assets_DLL/Core/obj/Debug/netstandard2.0/Core.dll index c6e5a260da8e65dec11f02365e5e9ac34a5a4514..99a763c25eae281b94d284c00a5b82e085baad56 100644 GIT binary patch delta 25517 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 Q`caSO;79*ZmUM9bFM6l~NdN!< delta 23688 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 WHAa1W#-he`YV`l@J7r0G`+or%x6`Ho diff --git a/Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.AssemblyReference.cache b/Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.AssemblyReference.cache index 5244097f8e4b72428a6818c31d3c28525439d319..29f93ac70fb7aab848e5fd347c7e4a20202c3d86 100644 GIT binary patch delta 33 pcmbQjIfZjVj1Vu|1Mg6uTO5pxj4aOiMX8L8lO35vHZ}>d005sO2)_UT delta 33 pcmbQjIfZjVjL=TM8z~8%w>TIX8Cjh3i&7aGCp$8UY-|!@0RXwx3CsWh diff --git a/Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.CopyComplete b/Assets_DLL/CoreEditor/obj/Debug/netstandard2.0/CoreEditor.csproj.CopyComplete new file mode 100644 index 0000000..e69de29