0
votes

Comment faire de la mise à jour du vide laissez la lecture audio jusqu'à la fin?

J'ai déchiré mes cheveux sur ceci.

Comment faire ce bit de code rendre le fichier audio assigné fonctionner complètement? Je sais que la méthode de mise à jour ne fonctionne que chaque image, mais comment puis-je la faire courir jusqu'à ce que l'audio soit terminé? L'audio commence ensuite immédiatement parce que c'est chaque image. P>

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class checkifdone : MonoBehaviour
{

public AudioSource checkwin;
private bulbmanager bulbreq;
// Start is called before the first frame update
void Start()
{
    bulbreq = FindObjectOfType<bulbmanager>();
}

// Update is called once per frame
void Update()
{
    checkaudio();
}

void checkaudio()
{
    if (bulbreq.bulbcount >= 8)
    {
        checkwin.Play();
    }
}

}


0 commentaires

3 Réponses :


0
votes

Si vous utilisez Unity 3D et C # Essayez d'utiliser cette fonction. Il jouera le fichier audio lié à Checkwin dans votre panneau d'inspecteur. xxx


4 commentaires

Cela seul ne vous aiderait pas car il est toujours appelé chaque image afin que vous ayez beaucoup de sons à jouer parallèle;)


Eh bien, je supposerais que l'on l'utilise dans une instruction IF pour le déclencher. : D SON Supposons de jouer à l'audio une fois de ne pas le chevaucher continuellement quel.


Pas exactement;) checkwin.play () démarre le audioClip . Si cela fonctionne déjà, il commence à nouveau à nouveau. checkwin.playOneshot (Audioclip); (BTW Checkwin est une audioource et ne peut pas être paramètre de PlayOneshot;)) Replaye l'audioClip complet une fois. Si cela s'appelle plusieurs fois, les clips sont joués parallèlement.


Oui, c'est pourquoi j'ai mentionné l'utilisation d'une déclaration si ... -> si (b) {jouer de la musique; B = FALSE} qui empêcherait complètement de jouer de manière répétitive ou redémarrée. : P



0
votes

Je l'ai compris. Fondamentalement, ce script était sur un objet vide qui a dû vérifier si la bulbcount était 8, j'ai déplacé le chèque à un autre GameObject et laissé la fonction de lecture audio au même endroit. J'ai également utilisé activé pour le gameObject qui jouera le son et, dans le début, le rendra inactif.

Ainsi, quand un autre GameObject (où le chèque de bulbcount est) connaît la bulbcount est 8, il permettra au lecteur audio, et (surenabled) il jouera le son.

Voici le script de l'autre jeu (un qui vérifie la bulbcente): xxx

Voici le code Je mets dans le lecteur audio: xxx

bien sûr, n'oublions pas d'assigner tout nécessaire. L'audio joue désormais complet car il est indépendant de la fonction de mise à jour de l'autre fichier de script. Je ne sais pas si c'est le meilleur moyen mais ça marche!


0 commentaires

0
votes

de audioferce.play

Si audiosource.clip est défini sur le même clip qui joue, le clip sonne comme si elle est redémarrée. AudioSource supposera que tout appel de jeu aura un nouveau clip audio à jouer.

Donc, si vous appelez lire chaque image qui commence toujours à partir du début chaque image.


Vous pouvez simplement ajouter un bool < / Code> Drapeau pour vérifier s'il était déjà joué au lieu d'avoir plusieurs composants et objets pour cela. Ou même plus facile: désactivez simplement le composant de sorte que update n'est même pas appelé plus xxx


0 commentaires