Apprenez à injecter du son dans vos scènes avec l’AudioSource !
Bienvenue à tou-te-s, ici Key en direct de Make Your Game ! Aujourd’hui, nous allons apprendre à introduire du son dans votre projet.
L’importance du son dans les jeux !
Avez-vous déjà essayé de jouer à un jeu sans son ?
Personnellement, je trouve cette expérience particulièrement désagréable, le son est une partie importante de l’immersion. Avoir le son des armes, de la musique ambiante, du cri des monstres est pour moi primordial, d’autant plus lorsque l’on pratique une discipline E-Sport.
Le son est un indicateur de situation, il rend les personnage réellement vivant, il appuie le danger, amplifie la grandeur de l’univers dans lequel vous vous trouvez.
Le tuto du jour vous apprendra à gérer la lecture et la pause d’un morceau !
Mise en place de la scène
Ouvrez un nouveau projet Unity, et créez à la racine du dossier “Asset” les dossiers “Script” et “Audio”.
Placer dans votre dossier “Audio” le morceau de votre choix.
Personnellement, je vais placer une musique libre de droit pour des questions de légalité, mais vous avez la liberté de choisir le morceau qui vous plaît.
Vous allez ensuite vous placer dans votre dossier “Script” afin d’y ajouter un script C# appelé “AudioController”.
Et pour finir, créez un cube dans votre scène, appelez-le comme vous le désirez, attachez-lui le script “AudioController”.
AudioController
Il est temps de passer à la partie scripting !
Ouvrez le fichier “AudioController” et déclarez les variables comme l’image ci-dessous.
L’une des parties les plus importantes de la gestion du son, c’est l’AudioSource, c’est un component qui devra être ajouté à tous les GameObjects qui vont devoir jouer un AudioClip.
Remarque : L’AudioClip est le son qui sera joué, le morceau que vous avez ajouté dans le projet est appelé AudioClip dans Unity.
Notre script va avoir besoin d’un AudioClip pour le son à jouer, un AudioSource pour gérer ce son, et nous ajoutons les attributs de gestion de volume et de vitesse de lecture.
Remarque : Les lignes 8 et 11 ont pour indications “Range()”, cela permet de spécifier que dans l’Inspector de votre scène, vous pourrez modifier les valeurs correspondantes (celles des variables “volume” et “pitch” grâce à un curseur à régler selon vos préférences.
Dans la méthode “Awake()”, il faudra ajouter le component AudioSource à notre GameObject, s’il n’en dispose pas, nous ne pourrons pas jouer d’AudioClip.
En stockant l’AudioSource dans la variable “source” nous nous assurons de pouvoir affecter des modification à l’AudioClip.
Et pour finir, nous affectons une valeur de base au volume et à la vitesse du morceau joué dans les limites imposées plus tôt.
Remarque : Notez que la méthode “Awake()” est une méthode qui se lance avant la méthode “Start()”.
Dans la méthode “Start()” on associe à l’attribut “clip” de notre AudioSource l’AudioClip récupéré via l’Inspector.
On fait la même chose pour le “volume” et le “pitch”, ce qui signifie que maintenant, l’AudioSource traitera l’AudioClip avec les valeurs entrées dans l’Inspector.
Avant de remplir notre méthode “Update()”, nous allons créer une méthode qui gérera la fonctionnalité de lire le morceau ou de le mettre en pause.
La méthode “PlayAndPause()” lancera la lecture du morceau s’il n’est pas en train d’être joué, dans le cas contraire, il sera mis en pause.
Remarque : L’attribut “isPlaying” de l’AudioSource est un booléen qui retourne “true” si le morceau est joué, et “false” si ce n’est pas le cas.
Et dans notre méthode “Update()”, on contrôle si la barre d’espace a été appuyée ou non : si oui, la méthode “PlayAndPause()” sera appelée, sinon, le script poursuivra son chemin. Pour permettre de modifier le son à notre guise pendant le mode play de notre scène, nous faisons en sorte que le volume et la vitesse de lecture soit toujours à jour par rapport à notre script !
Il ne restera plus qu’à associer un AudioClip à notre component dans l’Inspector, et à nous amuser avec les attributs !
Evidemment, pensez bien à appuyer sur la barre d’espace pour lancer votre bande son.
Et voilà, c’est tout pour aujourd’hui !
J’espère que ce tutoriel vous aura plus, et je vous dit à très bientôt !