# Playlist

Una **Playlist** es una instancia que permite reproducir una secuencia de pistas musicales en orden, una tras otra. Es ideal para crear listas de reproducción ambientales o cualquier escenario donde necesites que la música cambie de forma continua y automática. Utiliza las pistas musicales que hayas creado previamente en la ventana **Audio Creator**, dentro del apartado **Music**.

***

### 🛠 **Cómo crear una `Playlist`**

Agrupa las pistas musicales creadas en el *Audio Creator* usando sus *tags* o identificadores **`Track`**. Por ejemplo, para una radio con tres canciones:

```csharp
new Playlist("RockSong", "JazzSong", "ElectronicSong").Play();  
```

O usando **Track** directamente:

```csharp
new Playlist(Track.RockSong, Track.JazzSong, Track.ElectronicSong).Play();  
```

{% hint style="info" %}
Si modificas el *tag* de una pista en la ventana *Audio Collection*, las referencias en código se romperán.
{% endhint %}

```csharp
Playlist radio = new Playlist(Track.RockSong, Track.JazzSong)  
    .SetLoop(true)  // Repite la secuencia al terminar  
    .SetFadeOut(1); // Fade-out de 1s al final de cada pista  
radio.Play();  
```

***

### 📝 **Ejemplo Avanzado**

```csharp
Playlist ambientRadio = new Playlist(Track.ForestTheme, Track.RainTheme, Track.CityTheme)  
    .SetVolume(0.6f)  
    .SetLoop(true) 
    .SetFollowTarget(carTransform)  // La música sigue al coche   
    .Shuffle()                      // Aleatoriza el orden de las pistas  
    .SetOutput(Output.Music)        // Asigna a un canal específico  
    .SetFadeIn(2)                   // Fade-in de 2s al inicio de cada pista  
    .SetFadeOut(2)                  // Fade-out de 2s al final de cada pista  
    .OnNextTrackStart(() => print("¡Canción cambiada!"))  
    .Play();  
```

👉 Configura una "radio ambiental" que reproduce pistas aleatorias con transiciones suaves y un mensaje en consola al cambiar de tema.

\\
