Beispiel #1
0
 // Play a new music
 public void playMusic(AudioClip audioClip, float fadeOut, float fadeIn)
 {
     if (audioClip == null)
     {
         Destroy(gameObject);
         return;
     }
     gameObject.name = audioClip.name;
     if (audio.isPlaying)
     {
         // A music is already playing, so fade it out first
         this.fadeOut = fadeOut;
         this.fadeIn  = fadeIn;
         nextclip     = audioClip;
         status       = MusicPlayerStatus.FadingOut;
         fadeStart    = Time.time;
     }
     else
     {
         // Directly play the music with the fadeIn effect
         this.fadeIn   = fadeIn;
         audio.volume  = 0;
         audio.clip    = audioClip;
         audio.enabled = true;
         audio.gameObject.SetActive(true);
         audio.Play();
         //    audio.PlayOneShot(audioClip);
         status    = MusicPlayerStatus.FadingIn;
         fadeStart = Time.time;
     }
 }
Beispiel #2
0
 static public MusicPlayer?Create(out MusicPlayerStatus OSstatus)
 {
     OSstatus = NewMusicPlayer(out var handle);
     if (OSstatus == 0)
     {
         return(new MusicPlayer(handle, true));
     }
     return(null);
 }
Beispiel #3
0
        static public MusicPlayer Create(out MusicPlayerStatus OSstatus)
        {
            IntPtr handle;

            OSstatus = NewMusicPlayer(out handle);
            if (OSstatus == 0)
            {
                return(new MusicPlayer(handle));
            }
            return(null);
        }
Beispiel #4
0
 // Play a new music
 public void playMusic(AudioClip a, float fadeOut, float fadeIn)
 {
     gameObject.name = "Music Emitter - " + a.name;
     if (GetComponent <AudioSource>().isPlaying)
     {
         // A music is already playing, so fade it out first
         this.fadeOut = fadeOut;
         this.fadeIn  = fadeIn;
         nextclip     = a;
         status       = MusicPlayerStatus.FadingOut;
         fadeStart    = Time.time;
     }
     else
     {
         // Directly play the music with the fadeIn effect
         this.fadeIn = fadeIn;
         GetComponent <AudioSource>().volume = 0;
         GetComponent <AudioSource>().clip   = a;
         GetComponent <AudioSource>().Play();
         status    = MusicPlayerStatus.FadingIn;
         fadeStart = Time.time;
     }
 }
Beispiel #5
0
    // the Update function will do the fade in/out effect
    void Update()
    {
        // First, if the user want to change the volume
        if (smoothVolume)
        {
            if (status == MusicPlayerStatus.FadingOut || status == MusicPlayerStatus.FadingIn)
            {
                smoothVolume = false;
            }
            else
            {
                // Smooth the volume
                if (smoothVolumeBeginValue < volume)
                {
                    GetComponent <AudioSource>().volume = cubicInOut(Time.time - smoothVolumeStart, smoothVolumeBeginValue, volume, smoothVolumeDuration);
                }
                else if (smoothVolumeBeginValue > volume)
                {
                    GetComponent <AudioSource>().volume = smoothVolumeBeginValue - cubicInOut(Time.time - smoothVolumeStart, 0f, smoothVolumeBeginValue - volume, smoothVolumeDuration);
                }

                // If time is up we stop the animation
                if (Time.time > smoothVolumeStart + smoothVolumeDuration)
                {
                    GetComponent <AudioSource>().volume = volume;
                    smoothVolume = false;
                }
            }
        }

        // Now manage fade out/in
        if (status == MusicPlayerStatus.FadingOut)
        {
            if (Time.time < fadeStart + fadeOut)
            {
                GetComponent <AudioSource>().volume = volume - cubicInOut(Time.time - fadeStart, 0f, volume, fadeOut);
            }
            else
            {
                // Effect is finished
                GetComponent <AudioSource>().Stop();
                GetComponent <AudioSource>().volume = 0f;
                status = MusicPlayerStatus.Playing;

                // Is there another music to be played?
                if (nextclip != null)
                {
                    GetComponent <AudioSource>().clip = nextclip;
                    GetComponent <AudioSource>().Play();
                    nextclip  = null;
                    fadeStart = Time.time;
                    status    = MusicPlayerStatus.FadingIn;
                }
            }
        }
        else if (status == MusicPlayerStatus.FadingIn)
        {
            if (Time.time < fadeStart + fadeIn)
            {
                GetComponent <AudioSource>().volume = cubicInOut(Time.time - fadeStart, 0f, volume, fadeIn);
            }
            else
            {
                // Effect is finished
                GetComponent <AudioSource>().volume = volume;
                status = MusicPlayerStatus.Playing;
            }
        }
    }
Beispiel #6
0
 // Stop the music
 public void stopMusic(float fadeOut)
 {
     this.fadeOut = fadeOut;
     status       = MusicPlayerStatus.FadingOut;
     fadeStart    = Time.time;
 }
Beispiel #7
0
    // the Update function will do the fade in/out effect
    void Update()
    {
        // First, if the user want to change the volume
        if (smoothVolume)
        {
            if (status == MusicPlayerStatus.FadingOut || status == MusicPlayerStatus.FadingIn)
            {
                smoothVolume = false;
            }
            else
            {
                // Smooth the volume
                if (smoothVolumeBeginValue < volume)
                {
                    audio.volume = cubicInOut(Time.time - smoothVolumeStart, smoothVolumeBeginValue, volume, smoothVolumeDuration);
                }
                else if (smoothVolumeBeginValue > volume)
                {
                    audio.volume = smoothVolumeBeginValue - cubicInOut(Time.time - smoothVolumeStart, 0f, smoothVolumeBeginValue - volume, smoothVolumeDuration);
                }

                // If time is up we stop the animation
                if (Time.time > smoothVolumeStart + smoothVolumeDuration)
                {
                    audio.volume = volume;
                    smoothVolume = false;
                }
            }
        }

        // Now manage fade out/in
        if (status == MusicPlayerStatus.FadingOut)
        {
            if (Time.time < fadeStart + fadeOut)
            {
                audio.volume = volume - cubicInOut(Time.time - fadeStart, 0f, volume, fadeOut);
            }
            else
            {
                // Effect is finished
                audio.Stop();
                audio.volume = 0f;
                status       = MusicPlayerStatus.Playing;
                // Is there another music to be played?
                if (nextclip != null)
                {
                    audio.clip = nextclip;
                    audio.Play();
                    nextclip  = null;
                    fadeStart = Time.time;
                    status    = MusicPlayerStatus.FadingIn;
                }
            }
        }
        else if (status == MusicPlayerStatus.FadingIn)
        {
            if (Time.time < fadeStart + fadeIn)
            {
                audio.volume = cubicInOut(Time.time - fadeStart, 0f, volume, fadeIn);
            }
            else
            {
                // Effect is finished
                audio.volume = volume;
                status       = MusicPlayerStatus.Playing;
            }
        }
        if (!audio.isPlaying && audio.loop == false)
        {
            if (IsCache)
            {
                PoolManager.AddGameObject(gameObject.name, gameObject);
            }
            else
            {
                Destroy(gameObject);
            }
        }
    }
Beispiel #8
0
 public void fadeOutMusic(float fadeOut)
 {
     fadeStart    = Time.time;
     this.fadeOut = fadeOut;
     status       = MusicPlayerStatus.FadingOut;
 }
Beispiel #9
0
 public void fadeInMusic(float fadeIn)
 {
     fadeStart   = Time.time;
     this.fadeIn = fadeIn;
     status      = MusicPlayerStatus.FadingIn;
 }
Beispiel #10
0
 public static MusicPlayer Create(out MusicPlayerStatus OSstatus)
 {
     IntPtr handle;
     OSstatus = NewMusicPlayer (out handle);
     if (OSstatus == 0)
         return new MusicPlayer (handle);
     return null;
 }