From e209f64589f41f522f3eaef03ab46777ba058c66 Mon Sep 17 00:00:00 2001 From: Seraph Date: Sun, 5 Jun 2022 14:19:36 +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 --- Assets/Prototype/Core/Core.dll | Bin 53248 -> 53248 bytes Assets/Prototype/Core/CoreEditor.dll | Bin 27136 -> 27136 bytes Assets_DLL/Core/Ads/AdsManager.cs | 3 + Assets_DLL/Core/Audio/AudioController.cs | 6 +- Assets_DLL/Core/Audio/AudioController2D.cs | 4 +- Assets_DLL/Core/Audio/AudioController3D.cs | 22 ++- Assets_DLL/Core/Audio/PlayAudioFile.cs | 139 ++++++++++++++++++ Assets_DLL/Core/CoreInitializer.cs | 2 +- .../CameraVerticalStretchingAdapter.cs | 2 +- .../AspectAdapters/CanvasAspectAdapter.cs | 2 +- .../Tools/Pool/Particles/ParticlesPool.cs | 4 +- Assets_DLL/Core/Tools/Saves/SaveData.cs | 8 - Assets_DLL/Core/Tools/Saves/SaveManager.cs | 11 +- .../Core.csproj.AssemblyReference.cache | Bin 126743 -> 11 bytes .../Core.csproj.CoreCompileInputs.cache | 2 +- .../Core/obj/Debug/netstandard2.0/Core.dll | Bin 53248 -> 56320 bytes .../Pool/Particles/ParticlesPoolEditor.cs | 18 +-- .../CoreEditor/Tools/UnusedAssetsMarker.cs | 4 +- .../obj/CoreEditor.csproj.nuget.dgspec.json | 61 -------- .../CoreEditor.csproj.AssemblyReference.cache | Bin 4401 -> 11 bytes .../obj/Debug/netstandard2.0/CoreEditor.dll | Bin 27136 -> 27136 bytes Assets_DLL/CoreEditor/obj/project.assets.json | 22 +-- Assets_DLL/CoreEditor/obj/project.nuget.cache | 2 +- Builds/Core_1.9.unitypackage | Bin 0 -> 202770 bytes 24 files changed, 193 insertions(+), 119 deletions(-) create mode 100644 Assets_DLL/Core/Audio/PlayAudioFile.cs create mode 100644 Builds/Core_1.9.unitypackage diff --git a/Assets/Prototype/Core/Core.dll b/Assets/Prototype/Core/Core.dll index 5917e14abdf3966601766c3e04e2a184c06494d1..ee36347d7a5dea9e38ae2e252131b511e1d2c282 100644 GIT binary patch delta 54 zcmZozz}&Eac|r$Ez~1cT8+$&)GObpfTo>m8q&6Rk^NA3MoMywZ|L=RZmhibTM{c@t KZC2R+Kmq`a3K&xW delta 54 zcmZozz}&Eac|r$^d63GxjXfV?nYef+*TuO2sm({?d?EzOIDKN9#UeddPTur2@MLw+ JW`*q!Bmgs)6{7$E diff --git a/Assets/Prototype/Core/CoreEditor.dll b/Assets/Prototype/Core/CoreEditor.dll index 10af5185a5f4240e0031711ddaf34691eb478364..39528b2cbbaba0ccf2e9492c07f1c76ca7efb2f6 100644 GIT binary patch delta 3842 zcmZuy33yc16+Y*_H*cHuy-5bLh=dRlNZ3OIA)*jv5tU8QD54k?q9%a^8d2;dBnYwC z62}7iVcA*=F0Ghqr9~)3s?-G|ij9DPh%JgxJ{P2j_P=+6#eSV+{&)VfpZm_dSN{&z zzr)Lx=+z@q-)&i%$uG2Qx`AgTm~(xj8;CL!S)w3O#<~1@qJiUSE1{F0(fA7T(Xy+E zUK~oqi5=xdt>Zm- zMgH|8I{dj)VoOf878tB04tGhJFduO}46FJ8u0gxz49Zj=gdElFn(w|RKD#Cyx?nL} z-PNn#g;TQQ4Vg%LB7?^sO4J4pMIOjid_=5UArJmM$%UOk@QZS z^mj{?JXj3po$NXuL5KZJtJx0DjS|pv8 z`)!U<86SuLbDs3fcV(HEs8VmFwWb{4jfC5?Q~VZZn;WA_XFc*v3rvc{XsW{B`fm@# zXuN$pGE56M1-H|iI1zMZ%C1uV4R(my>`L^RrOAG(q7(6;oH)gk*r>}h7!Z*1l^6!+N;1WQP*boAr9p4ddT0!aS+eA9 z(cgzXDsrU0DJngut5JusJd|?(-$NnVValA_{L<$$A)8*~OgBB6iHdQ$Tf~XtG*8Iw zdPoI7ixYKd2hgAeC>Ej#xG6EZG<+QA@o{)P^s8-oH=eb(xglB%D`v&?F{<{TLvten zd&363iDCwgawPr={suV_xkB$lpHB6j&E06eT^ZNqmf@F#593e%5AgpyJV>#6u*MFi zQ3FS4lJ`hp5T0N*)r0B5$KmOt0K6mgMBw>Q1sK*Iwu0cmh-BD&u!$YaQ|$i08ReOR z;bGkFoe3?1YfKs21AE;Hq|8$6R3PX`maR%u1(Pg?7;*Q26~dOQY_SeoPsLvBh|5P7 zqE9g1Ab9pBKjIePhd-HuU|M2R{w48Uk@1>KZ3-7V={}bpb+Um4;e6m!x1W!xmP_Gt zz#9Y&MT((0X!qBcO1;Z{0~uGJK|Q=u&7kfIU2C2;zNfdAdr3%9)&{p<|J92dtIWsAh-CK^EK9cSr4gQPRE>5GHGdU zlHI0X@3ZMc#aifu(M$O0YzI4MB;G1W=c>e~1sS7c7k-NLl3{^XP!%2xGFH8cJLi|Q0?Z*@Jedq67LB*!Ye}0(Q(eOra)gD+JfKJ zMzNhv^AP)Qv^&na)ds^C=GW-!cV=HY%a(T@_^_^VGcS+YY>T6Mm|f95kjlGxw7&>% z!H1%moI=y=ZrmMB%tx{1dVg-?h0(FlZ{#x067N~lc`dAW0#Ca4@MCn;s|8+VNj&b= z0psJWI+Xb)vH%6ztc57>k=e{Gv@ZG!&QxVGRhdkc)E0ifY-KQ7vBegaa#eI861BLs zJVb1>zoy~h71QPbJr&MGLq*;TkT>#9U|(}LYE2YHID>xP9%$0z-acFwM&IWN;=Sl$ zE)$dWC4GQ^?;=&7qNyMU<(X1{-6=7Wz(%N9NNUzY&HB#!TP_qZTDU=1R!V z8+GjR)uB2hl`Gap_qb!lajN4wktOboPUjY!RwGhG#LvW8xb$me;a7H2LFkJkb;)82!bN~{|opTMuQP29!P5H>D6Ln~0XBa5%m=V@8| zRrp>6?{^-6UPcut{{l+KQ5UE?T_zs&WSQacM|t}Z;4y6l@T4tqiT$`%n7qYt+=Hh; zWTHZqs8A&;REd~3i&NTKzR&wY>xq+y;6)YaAwpA|Rj5jrd6DemSy zW-lQZIiR!V3#I5K>Ly-E*9G$QYv>zyC^T{tHY7KhOjhE7C0i_3|#@U++L(M zGnrZFD=_hJ|1COm2r`ZrxSOZ=OVQAicoVh=L;M)lM{i8CM$n^%gM@x2B!?MnBiv z$!A`H4Ui?<>1AUd*7iJ~h1_Py4Np~jo@L6-9|^gcp9%|~ML84!_M}u_AG}a*0!Arb zj!OnD1ZLAuf%)_o;6QpCIFt?oOX(BfSf!r?ETx-~s9a$^mD88Lom5MUjibQRhQ_s2 zX=Vctn&rS@Ry~(fSECW~udOwZM;hxPe`oCk&hBC##pS52iCP-xWQ)6HYK4Cm<#b2l zT;Z6@w>A(S7<#>YVO;!qBp_cZ|NWT0eizdYLsO!0&`@60x_!{cdh3(Lf6_!nRqM22 zAK0y(|6}fkMOSScaOl+sFY7$Ab?%La^)%0Pyh?9^1yFxN2wzwB tDy`NBZaL)hmZGf-pAAy(+L9IHm5D{=4XvRW|JKBd{af8xr?{n``5(w|>V5zK delta 3750 zcmZu!3v^V~6+P#^H}B1x|9cZAV4@O2$e&LM-vkN1&{qpON?q z^3cp1iH?_&`)bvo=CPtl(-IrX-7KTC`<16qWRy2&8JDi}qzj@>ZqS$R_Rc97zF>cl z=H(40^5q#sg?S4h(SrB>pR%<>nZCM$h;w4yh!Qur&*#Lv9UAweoNUcM@QT~&bg3}R zx?_kI@GiIv&${D~gWd&KJLIVDT@Vhn8=@Y|s(b(YDn5o(cLYGTZtLz{Jqky|njgP1_v&^?%%~*tJow?JWwEkuuetmW$ng`n$Qaa~(e8-kUpU$g~hq_I*Te z;Wv^7dBVa4)pKXn%TxIf1?5Tm#0f-wV23XIXA>(%;5P#Pj(Z_Dw^KD394U-%PkjCO zo^gxwisM5phD>D8e$QJ$gRVCu=6Y5I!*nqy_2WHbOat|0`3!o_BXN$xl?u-*ECu@L zqMm^7G<%t4P|QD)4cbgAfiD1kbdQw?hG4DLL*xJ*TBp^{)D5~%mkt4yel_G6CC$e| zK6)#V2>NJ6P~vCNL@-9J{!Wn)jptfDMjYrAxrWyIEsjwopT_##j$D~*%QSzYT75Y^ zY03?>xI^;ONz5_tLxQ2&yt=RknYb z6{7uCE$YnDNU2*N(;AXpvRx!CoVdd$1ra-qZhJxF0e866kciooUp_5t`~e6zGRb#)1u_99)N$ z9tvP>gf<3tg{r|Y?XcwqdqpI}DzIDHnWI=k;F4O2k%#RK=Tc||R>l;2e`Mf*U5$`g zivB%d`6SC$DQbc#mO~83*ZNA>Ry zmn_v%KYgNDhwbwYn_Jg2BcAe(l>gYfFJ6T|c$fVTyHT;_G?^Tayl$C}uzZ15*-}nn zcibOLDcq__c@+j&&{i!HVcKj*B7%0y0jKV9uSGQhCL3r_7od;wfe~E#5(g<9uCPMk zIE9r8X8;Xq0(PQZN^SvW;*on&?*-hc^`$005*+|}kCLCa%V;AXH>Lgpb{%ixQKCYT zTWK4A7#TqG5h6l6dAvReZgV43fpK89N)S+(rZ7|CF7C_=X*bsdme8ww7p|oit`2XY zLtO4`p;mT7zoWC<)jJ9L{-ND?@OFs3bbZ&OR0E$<;1+RQ7c>qWB{wXyDe2VARb z+{9a=7F*&AJiqK z4BiIo-N1A9J-m_5IrYHdUWxy58i4W9-Ug((5?P7_`@Q!g!CAA3le9DX2xqD^nJP`D z3Tg?{FH0#wDVEsHQeG6jAAwfe^*l)Iv98c?@s4S6fSw9xqM)J9?;-EteZUg41-ZtH z0qDU1=KwTWapwqrnxY@^IPppJQ?3-B`_4l%)oO!$r_e>ExEis zJ5yAPQ$}B!FJ3cqAhW+f9HN2tU}5uzxX^9B933W(($|Q8lvadpf^0=`H_;GdwAf8o z#aKkXz@<}Qm}JZXK4a7) zCq2I1{w)IS@HPXF@hiYby#*pE=KJ0h79VvEiXJV(xUJTC%+zdwpFs=IcZsty0)=tpp_99tv#o z;@;(FS>jf|H1G7`(&RsS%OQWqH$mS&JXQ-(m306c80ei0`3pRfheQoehjny#rdFhS zpT%SJMOqeL3@?W72fk&{ORplezKF8W*CHHid>?wY$&qP>!-08+wHA0&_(&M9me%7$2Op|#-TL5OdZ(>8WqUX$IunK6dE~zmbTbw5Vm#@&F`Yg1g+xj z&@fo#sFu<7W+pQWeLZ$O#D9m*9D>Z80c_#%{&E!bB;JKdVTfPAx(0F_I}XP6X{yE~ zg0F%s_cu-LZ<PurHkimeP4(Ieh~ht@IOs<#apZR4GhQ6?u$( zR8Q-TQ#7ug*wnb5mYLbW^JW$B7H@*9sJF2k@=M;wAx|>4Lk?T}fC=jq@RFs8db-n> zE#}D33jZvsXpx)Iui~dKHWKa#Jt5x_KmI%vknfQnKIxv`Kc?-5guA_8DQ{~&(eI2d z=GHa8Hux2-xoPMJmWlr$%IoGXY@RlXyR diff --git a/Assets_DLL/Core/Ads/AdsManager.cs b/Assets_DLL/Core/Ads/AdsManager.cs index 0c22465..d70ca9c 100644 --- a/Assets_DLL/Core/Ads/AdsManager.cs +++ b/Assets_DLL/Core/Ads/AdsManager.cs @@ -17,6 +17,9 @@ namespace Core.Ads internal static void Init() { + if (!CoreSettings.data.needInterstitial && !CoreSettings.data.needBanner && !CoreSettings.data.needRewarded) + return; + GameObject holder = new GameObject("[AdsManager]"); GameObject bridge = null; diff --git a/Assets_DLL/Core/Audio/AudioController.cs b/Assets_DLL/Core/Audio/AudioController.cs index 75836ce..2cf6421 100644 --- a/Assets_DLL/Core/Audio/AudioController.cs +++ b/Assets_DLL/Core/Audio/AudioController.cs @@ -83,8 +83,8 @@ namespace Core.Audio } } - public static float PlayMusic(string name) => - _audio2D.PlayMusic(name); + public static float PlayMusic(string name, bool isLoop = false) => + _audio2D.PlayMusic(name, isLoop); public static void StopMusic() => _audio2D.StopMusic(); @@ -121,7 +121,7 @@ namespace Core.Audio { AudioListener listener = FindObjectOfType(); - if (listener == null) + if (listener != null) _currentTarget = listener.transform; } else diff --git a/Assets_DLL/Core/Audio/AudioController2D.cs b/Assets_DLL/Core/Audio/AudioController2D.cs index 294eb66..c9b3deb 100644 --- a/Assets_DLL/Core/Audio/AudioController2D.cs +++ b/Assets_DLL/Core/Audio/AudioController2D.cs @@ -65,12 +65,11 @@ namespace Core.Audio } } - internal float PlayMusic(string name) + internal float PlayMusic(string name, bool isLoop = true) { if (_musicSource == null) { _musicSource = _musicParent.AddComponent(); - _musicSource.loop = true; _musicSource.playOnAwake = false; _musicSource.volume = CoreSettings.data.musicVolume * MusicVolume; } @@ -78,6 +77,7 @@ namespace Core.Audio if (_musicAndSounds.ContainsKey(name)) { _musicSource.clip = _musicAndSounds[name]; + _musicSource.loop = isLoop; _musicSource.Play(); return _musicAndSounds[name].length; diff --git a/Assets_DLL/Core/Audio/AudioController3D.cs b/Assets_DLL/Core/Audio/AudioController3D.cs index 33e5c27..51f9f34 100644 --- a/Assets_DLL/Core/Audio/AudioController3D.cs +++ b/Assets_DLL/Core/Audio/AudioController3D.cs @@ -16,10 +16,6 @@ namespace Core.Audio _voicesDictionary = voicesDictionary; } - private GameObject _musicParent = null; - private GameObject _soundsParent = null; - private GameObject _voicesParent = null; - private List _soundsSources = new List(); private List _voicesSources = new List(); @@ -58,9 +54,13 @@ namespace Core.Audio if (playSource == null) { - playSource = _soundsParent.AddComponent(); + GameObject sound = new GameObject("Sound"); + playSource = sound.AddComponent(); playSource.playOnAwake = false; playSource.volume = CoreSettings.data.soundsVolume * SoundsVolume; + playSource.spatialBlend = 1f; + playSource.rolloffMode = AudioRolloffMode.Custom; + playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f)); _soundsSources.Add(playSource); } @@ -73,6 +73,9 @@ namespace Core.Audio playSource.maxDistance = maxDistance; playSource.transform.SetParent(target); playSource.transform.localPosition = Vector3.zero; + playSource.spatialBlend = 1f; + playSource.rolloffMode = AudioRolloffMode.Custom; + playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f)); playSource.Play(); return _musicAndSounds[name].length; @@ -95,10 +98,14 @@ namespace Core.Audio if (playSource == null) { - playSource = _voicesParent.AddComponent(); + GameObject voice = new GameObject("Voice"); + playSource = voice.AddComponent(); playSource.loop = false; playSource.playOnAwake = false; playSource.volume = CoreSettings.data.voicesVolume * VoicesVolume; + playSource.spatialBlend = 1f; + playSource.rolloffMode = AudioRolloffMode.Custom; + playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f)); _voicesSources.Add(playSource); } @@ -112,6 +119,9 @@ namespace Core.Audio playSource.maxDistance = maxDistance; playSource.transform.SetParent(target); playSource.transform.localPosition = Vector3.zero; + playSource.spatialBlend = 1f; + playSource.rolloffMode = AudioRolloffMode.Custom; + playSource.SetCustomCurve(AudioSourceCurveType.CustomRolloff, AnimationCurve.Linear(0f, 1f, 1f, 0f)); playSource.Play(); return _voicesDictionary[LocalizationManager.CurrentLanguage][name].length; diff --git a/Assets_DLL/Core/Audio/PlayAudioFile.cs b/Assets_DLL/Core/Audio/PlayAudioFile.cs new file mode 100644 index 0000000..e936b9b --- /dev/null +++ b/Assets_DLL/Core/Audio/PlayAudioFile.cs @@ -0,0 +1,139 @@ +using System.Collections; +using UnityEngine; +using UnityEngine.UI; + +namespace Core.Audio +{ + public sealed class PlayAudioFile : MonoBehaviour + { + public enum SourceType + { + Flat = 0, + Surround = 1, + } + + public enum AudioFileType + { + Music = 0, + Sound = 1, + Voice = 2, + } + + public enum PlayType + { + OnStart = 0, + OnClickButton = 1, + OnClickCollider = 2, + OnPlayParticle = 3, + } + + [SerializeField] private SourceType _sourceType = SourceType.Flat; + [SerializeField] private AudioFileType _audioFileType = AudioFileType.Music; + [SerializeField] private PlayType _playType = PlayType.OnStart; + [SerializeField] private float _startDelay = 0f; + [SerializeField] private bool _loop = false; + [SerializeField] private float _minDistance = 0f; + [SerializeField] private float _maxDistance = 100f; + [SerializeField] private string[] _audioFileNames = new string[0]; + + private ParticleSystem _particleSystem = null; + private Button _button = null; + + private bool _isPlaying = false; + + private void Awake() + { + _button = GetComponent