[RESOLU]Jouer un son à partir d'un temps désiré

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
Leuprochon
Messages : 60
Inscription : 04 Déc 2017 19:12

[RESOLU]Jouer un son à partir d'un temps désiré

Message par Leuprochon » 07 Juil 2021 16:16

Bonjour à tous,

Je bloque sur un truc qui me paraissait simple ... Je veux créer un bouton replay qui me joue un son. Le seul truc c'est qu'il doit me jouer que la fin du son (histoire de pas multiplier mes pistes de son dans mon projet).

J'ai cru comprendre qu'il fallait utiliser :

AudioSource.time

Mais ça ne marche pas, quand je fais un Debug.log(AudioSource.time) j'ai toujours 0. J'ai réussi à le faire marcher quand j'ai directement mis un clip dans mon AudioSource. J'ai donc compris que le AudioSource.time ne marche que pour le clip par défaut.

D'ou ma question : Comment faire ? Dois je quand même utiliser AudioSource.Time ? Dois je utiliser une autre manière ? Sachant que je ne peux pas mettre de clip dans mon audiosource car il me sert à jouer une multitude de clip. J'utilise la fonction PlayOneShot.

Mon script assigné à mon bouton est tout simple :

Code : Tout sélectionner

public AudioSource AS;
    public AudioClip Sound;
    public float Time_Go;

    // Update is called once per frame
    void onClick()
    {
        AS.time = Time_Go;
        AS.PlayOneShot(Sound);
    }

    public void Update()
    {
        Debug.Log(AS.time);
    }
Merci bien !
Dernière édition par Leuprochon le 07 Juil 2021 16:43, édité 1 fois.

Leuprochon
Messages : 60
Inscription : 04 Déc 2017 19:12

Re: Jouer un son à partir d'un temps désiré

Message par Leuprochon » 07 Juil 2021 16:42

Bon, je viens de trouver la réponse.

Le problème vient bien du PlayOneShot(). L'AudioSource ne détecte pas de paramètre "temps" lorsqu'on utilise cette fonction. Allez savoir pourquoi mais c'est son fonctionnement ...

Du coup voici comment faire :

Code : Tout sélectionner


public AudioSource AS;
public AudioClip Test;

public void Start
{
AS.clip = Test;
AS.Play();
AS.time = 5;
}
Et la quand il joue le son il commence à 5S de ma piste.

En espérant que ça puisse en aider certain !

Répondre

Revenir vers « Audio, musique et sons »