[Résolu] Récupérer le temps d'un audio en valeur

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
Xameal
Messages : 12
Inscription : 15 Mars 2020 23:56

[Résolu] Récupérer le temps d'un audio en valeur

Message par Xameal » 07 Avr 2022 11:14

Bonjour,
Je voudrais récupérer le temps d'un audio, pour faire apparaître des objets à la fin de celui-ci.

Exemple : Si mon audio dure 10 secondes, je voudrais faire par exemple Audio.getTime() qui me donnerait 10, et utiliser cette valeur dans un Wait() que j'ai coder avec StartCoroutine().

Audio.time() ne semble pas fonctionner, ou je m'y prends mal.

Une autre solution peut être attendue, le but final est de lancer une action dans le jeu (apparition d'un objet ou d'un événement) à la fin d'un audio.
Je ne pense pas que ce soit compliqué, mais je me surprend à avoir des difficultées pour retrouver un simple get() :gene: .

Je vous remercie d'avance pour vos réponses,
Cordialement.
Dernière édition par Xameal le 08 Avr 2022 11:03, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 5835
Inscription : 28 Avr 2014 11:57
Localisation : Allériot (71)

Re: Récupérer le temps d'un audio en valeur

Message par boubouk50 » 07 Avr 2022 13:08

Salut,

d'où tu sors ton Audio.time ()?
Si tu joues un son, tu dois avoir un AudioClip joué par un AudioSource.
https://docs.unity3d.com/ScriptReferenc ... -clip.html
Tu peux récupérer la longueur du clip depuis l'AudioClip:
https://docs.unity3d.com/ScriptReferenc ... ength.html
"Ce n'est pas en améliorant la bougie, que l'on a inventé l'ampoule, c'est en marchant longtemps."
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation

Xameal
Messages : 12
Inscription : 15 Mars 2020 23:56

Re: Récupérer le temps d'un audio en valeur

Message par Xameal » 08 Avr 2022 11:03

Merci de ta réponse !
J'ai du coup réussi à trouver, je poste la "solution" code ici, qui permet de faire apparaître / disparaître un objet après l'audio joué.

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
 
public class ActiveTP_BAF : MonoBehaviour
{
    public AudioSource audioSource;
    private AudioClip audioClip;
 
    public GameObject disappear;
    // Start is called before the first frame update
    void Start()
    {
        audioSource = GetComponent<AudioSource>();
        audioClip = audioSource.clip;
 
        // Debug.Log("Audio Clip Length : " + audioSource.clip.length); --> Work :)
        // Debug.Log("Audio Clip Length : " + audioClip.length); --> Work :)
        StartCoroutine(Wait());
    }
 
    private IEnumerator Wait()
    {
        yield return new WaitForSeconds(audioClip.length);
        disappear.SetActive(true);
    }
}

Répondre

Revenir vers « Audio, musique et sons »