using UnityEngine;
|
|
using System.Collections;
|
|
|
|
public class musicController : MonoBehaviour {
|
|
|
|
public AudioClip startMusic;
|
|
public AudioClip endMusic;
|
|
|
|
private AudioSource source;
|
|
private bool triggered = false;
|
|
|
|
void Awake(){
|
|
source = GetComponent<AudioSource> ();
|
|
}
|
|
|
|
// Use this for initialization
|
|
void Start () {
|
|
source.clip = startMusic;
|
|
}
|
|
|
|
// Update is called once per frame
|
|
void Update () {
|
|
if (Input.GetKeyDown (KeyCode.Equals)) {
|
|
source.volume += 0.1f;
|
|
}
|
|
if (Input.GetKeyDown (KeyCode.Minus)) {
|
|
source.volume -= 0.1f;
|
|
}
|
|
|
|
}
|
|
|
|
IEnumerator fadeOut (float end, float steps){
|
|
|
|
Debug.Log ("Volume: " + source.volume);
|
|
float curVol = source.volume;
|
|
while(source.volume > end + steps)
|
|
{
|
|
source.volume -= steps * Time.deltaTime;
|
|
Debug.Log ("Volume: " + source.volume);
|
|
yield return new WaitForSeconds(0.01f);
|
|
}
|
|
source.volume = end;
|
|
source.clip = endMusic;
|
|
source.Play();
|
|
StartCoroutine (fadeIn (curVol, 0.2f));
|
|
yield return null;
|
|
}
|
|
|
|
IEnumerator fadeIn (float end, float steps){
|
|
|
|
while(source.volume <end - steps)
|
|
{
|
|
source.volume += steps * Time.deltaTime;
|
|
yield return new WaitForSeconds(0.01f);
|
|
}
|
|
source.volume = end;
|
|
yield return null;
|
|
}
|
|
|
|
void OnTriggerEnter(Collider other) {
|
|
Debug.Log ("Music Change");
|
|
|
|
if (triggered)
|
|
return;
|
|
if (other.transform.tag != "Player")
|
|
return;
|
|
|
|
StartCoroutine (fadeOut (0.0f, 0.2f));
|
|
//fadeIn (1.0f, 0.01f);
|
|
triggered = true;
|
|
}
|
|
|
|
}
|