is it valid ? can i improve it in any way ? thanks 
using UnityEngine;
using UnityEngine.SceneManagement;
public class MusicManager : MonoBehaviour {
public AudioClip[] levelMusicChangeArray;
private AudioSource audioSource;
// Use this for initialization
void Awake () {
audioSource = GetComponent<AudioSource>();
DontDestroyOnLoad(gameObject);
SceneManager.sceneLoaded += loadscene;
}
void loadscene(Scene scene, LoadSceneMode mode)
{
AudioClip thisLevelMusic = levelMusicChangeArray[scene.buildIndex];
Debug.Log("playing clip " + thisLevelMusic);
if (thisLevelMusic) { // If there's some music attached
audioSource.clip = thisLevelMusic;
audioSource.loop = true;
audioSource.Play();
}
}
}