123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990 |
- using UnityEngine;
- using System.Collections;
- public class ManaAudio : MonoBehaviour
- {
- #region 变量
- public Coroutine CoroTheme;
- public Coroutine CoroMiniGame;
- public AudioSource MusicMini;
- public AudioSource MusicTheme;
- #endregion
- private void Awake()
- {
- Initializer.RegistValue += RegistValue;
- Initializer.RegistReference+= RegistReference;
- ManaReso.Get("MusicMini", Folder.Object, true, null, true);
- ManaReso.Get("MusicTheme", Folder.Object, true, null, true);
- }
- private void RegistValue()
- {
- #region MusicMini
- Transform tra = MusicMini.transform;
- TweenAudio tween = tra.CreateTweenAudio(1, 2f, true, true, Curve.EaseOutQuad);
- tween.OnForwardStart += () =>
- {
- MusicMini.Play();
- CoroTheme = StartCoroutine(Loop(MusicMini));
- };
- tween.OnBackwardStart += () =>
- {
- StopCoroutine(CoroTheme);
- };
- #endregion
- #region MusicTheme
- tra = MusicTheme.transform;
- tween = tra.CreateTweenAudio(1, 2f, true, true, Curve.EaseOutQuad);
- tween.OnForwardStart += () =>
- {
- MusicTheme.Play();
- CoroTheme = StartCoroutine(Loop(MusicTheme));
- };
- tween.OnBackwardStart += () =>
- {
- StopCoroutine(CoroTheme);
- };
- #endregion
- ManaReso.Get("MusicTheme").TweenForAudio();
- }
- private void RegistReference()
- {
- MusicMini = ManaReso.Get<AudioSource>("MusicMini");
- MusicTheme = ManaReso.Get<AudioSource>("MusicTheme");
- }
- private IEnumerator Loop(AudioSource audioSource)
- {
- while (true)
- {
- while (audioSource.isPlaying)
- {
- yield return null;
- }
- yield return new WaitForSeconds(3);
- audioSource.Play();
- }
- }
- }
|