Son
Les sons d'un monde sont les composants Audio Source de sa scène (le son dans un monde). Un script les joue dans le jeu où il tourne : Play() dans le jeu d'un joueur joue pour ce joueur. Pour jouer un son pour tout le monde, envoie un événement réseau que chaque jeu joue, ou synchronise un état. Le serveur n'a pas de son : marque ces scripts [ClientOnly].
csharp
using NodeWorld.Flux;
namespace MonMonde
{
[ClientOnly]
public class Jukebox : FluxScript
{
public AudioSource enceinte;
public AudioClip[] chansons;
private int _chanson;
protected override void Start() => Interaction.SetInteractable(gameObject, true);
protected override void OnInteract()
{
_chanson = (_chanson + 1) % chansons.Length;
enceinte.clip = chansons[_chanson];
enceinte.Play();
}
}
}L'Audio Source
Play(), PlayDelayed(seconds), Stop(), Pause(), UnPause(), isPlaying | Jouer le clip de la source. |
PlayOneShot(clip, volumeScale) | Joue un clip par-dessus ce que joue la source, avec ses réglages. |
clip | Le clip : un champ de type AudioClip réglé par la scène, ou le clip d'une autre source. AudioClip.length est sa durée en secondes. |
volume, pitch, mute, loop, playOnAwake, priority, time | Comme dans Unity ; time est la position dans le clip, en secondes. |
spatialBlend, minDistance, maxDistance | 2D (0) ou 3D (1), et comment le son baisse avec la distance. |
enabled | Allume ou éteint la source. |
Lire ce que joue une source
GetSpectrumData(samples, channel, window): le spectre de ce que joue la source (une FFT) ;samples.Lengthest une puissance de deux de 64 à 8192,windowuneFFTWindow(Blackman,Hanning…).GetOutputData(samples, channel): les derniers échantillons qu'elle a joués (la forme d'onde), de 1 à 16 384.
Pulse lit GetOutputData pour faire réagir un monde à sa musique.
Les autres sons
- Le son d'une vidéo passe par les Audio Sources que tu donnes à son lecteur (lecteurs vidéo).
- Comment les joueurs entendent la voix des autres : joueurs.
- Les oreilles du joueur sont celles du jeu : un Audio Listener de ta scène est retiré (ce qu'un monde peut contenir).
