NodeWorld

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(), isPlayingJouer le clip de la source.
PlayOneShot(clip, volumeScale)Joue un clip par-dessus ce que joue la source, avec ses réglages.
clipLe 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, timeComme dans Unity ; time est la position dans le clip, en secondes.
spatialBlend, minDistance, maxDistance2D (0) ou 3D (1), et comment le son baisse avec la distance.
enabledAllume 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.Length est une puissance de deux de 64 à 8192, window une FFTWindow (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).