Page 1 sur 1

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

Publié : 07 Avr 2022 11:14
par Xameal
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.

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

Publié : 07 Avr 2022 13:08
par boubouk50
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

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

Publié : 08 Avr 2022 11:03
par Xameal
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);
    }
}