En poursuivant le manuel (Spriting API avec pour compléter) j'ai commencé la lecture de la partie Audio (commencé, très loin d'avoir fini le tour) et j'en suis arrivé à l'AudioMixer. Je dois avouer que pour gérer de multiple AudioSource en un et même point c'est un bonheur. Mais un détail me taquine. Je suis loin d'être calé en Audio de manière général, donc passer du classique - 0 = pas de son - et - 1 = son à fond - , à cette barre de Db, là je suis un peu perdu. J'ai réussi via un script + un slider et donc l'AudioMixer (celui de l'ui canvas...) à gérer le volume en faisant bouger le slider.
Note : Je le met quand même, mais c'est la base même pour contrôler le volume par script dans le mixer. (J'appel la méthode depuis les paramètres "On Value Changed (single)" sur le slider dans l'inspecteur)
Code : Tout sélectionner
public void SetMusicLvl(float musicLvl)
{
masterMixer.SetFloat("musicVol", musicLvl);
}
Je ne suis pas sûr si je me ferais bien comprendre, mais n'y a t-il pas un moyen, un paramètre (ou plusieurs) afin d'avoir un maximum et minimum un peu comme l'habituel 0 et 1 qui définissait les minimums et maximums si l'ont gérait le son directement sur l'AudioSource ?
Je suis bien perdu pour ce détail, j'oublie peut-être un petit truc ou cela se trouve je ne pense pas dans le bon sens avec l'AudioMixer.
Je vais continuer à tâter et faire des essais d'ici là qu'une réponse arrive.
Merci d'avance.
Skelnox
--
Edit : Problème résolu. Je vous met le code, si cela peut intéresser quelqu'un (ou si quelqu'un trouve qu'il peut y avoir mieux que ce que j'ai là, je serais preneur )
Merci à IntDev(je n'aurais pas pensé à faire une conversion des décibels en float linéaire)
Code : Tout sélectionner
public void SetMusicLvl(float musicLvl)
{
float dB = 20f * Mathf.Log10(Mathf.Pow(musicLvl, 2f));
if (float.IsInfinity(dB)) { dB = -80f; }
masterMixer.SetFloat("musicVol", dB);
}