Vérifier plusieurs conditions en même temps

Questions à propos du scripting. Hors Shader, GUI, Audio et Mobile.
Adrien3112
Messages : 36
Inscription : 28 Août 2015 19:44

Vérifier plusieurs conditions en même temps

Message par Adrien3112 » 24 Jan 2017 22:43

Bonjour tout le monde ! Je suis en ce moment sur un projet de soundbox d'un même sur internet ( délire avec des amis :lol: ) mais j'ai un problème sur lequel je bloque depuis quelques jours :

Code : Tout sélectionner

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

public class Son : MonoBehaviour {
    public AudioSource LacheMoiMichel;
    public AudioSource PasLaCite;
    public AudioSource PlutotAmusant;
    public AudioSource JvaisLeNiker;
    public AudioSource MecDeBanlieu;
    public AudioSource EnleverConnard;
    public AudioSource LaisseUn;
    public AudioSource LaisseDeux;
    
    public void Update()
    {
        if (PasLaCite.isPlaying)
        {
            LacheMoiMichel.Stop();
            PlutotAmusant.Stop();
            JvaisLeNiker.Stop();
            MecDeBanlieu.Stop();
            EnleverConnard.Stop();
            LaisseDeux.Stop();
            LaisseUn.Stop();
        }
         else if (LacheMoiMichel.isPlaying)
        {
            PasLaCite.Stop();
            PlutotAmusant.Stop();
            JvaisLeNiker.Stop();
            MecDeBanlieu.Stop();
            EnleverConnard.Stop();
            LaisseDeux.Stop();
            LaisseUn.Stop();
        }
         else  if(PlutotAmusant.isPlaying)
        {
            PasLaCite.Stop();
            LacheMoiMichel.Stop();
            JvaisLeNiker.Stop();
            MecDeBanlieu.Stop();
            EnleverConnard.Stop();
            LaisseDeux.Stop();
            LaisseUn.Stop();
        }
         else  if (JvaisLeNiker.isPlaying)
        {
            PasLaCite.Stop();
            LacheMoiMichel.Stop();
            PlutotAmusant.Stop();
            MecDeBanlieu.Stop();
            EnleverConnard.Stop();
            LaisseDeux.Stop();
            LaisseUn.Stop();
        }
         else  if (MecDeBanlieu.isPlaying)
        {
            PasLaCite.Stop();
            LacheMoiMichel.Stop();
            PlutotAmusant.Stop();
            JvaisLeNiker.Stop();
            EnleverConnard.Stop();
            LaisseDeux.Stop();
            LaisseUn.Stop();
        }
         else  if (EnleverConnard.isPlaying)
        {
            PasLaCite.Stop();
            LacheMoiMichel.Stop();
            PlutotAmusant.Stop();
            JvaisLeNiker.Stop();
            MecDeBanlieu.Stop();
            LaisseDeux.Stop();
            LaisseUn.Stop();
        }
        else  if (LaisseDeux.isPlaying)
        {
            PasLaCite.Stop();
            LacheMoiMichel.Stop();
            PlutotAmusant.Stop();
            JvaisLeNiker.Stop();
            MecDeBanlieu.Stop();
            EnleverConnard.Stop();
            LaisseUn.Stop();
        }
       else  if (LaisseUn.isPlaying)
        {
            PasLaCite.Stop();
            LacheMoiMichel.Stop();
            PlutotAmusant.Stop();
            JvaisLeNiker.Stop();
            MecDeBanlieu.Stop();
            EnleverConnard.Stop();
            LaisseDeux.Stop();
        }
    }
}
Pardon de la vulgarité des conditions, c'est pour être le plus explicite possible :lol:
Je voudrais que dès que j'appui sur un bouton, un son se lance, ce que j'ai réussi à faire sans problème, je voudrais aussi que le dernier bouton pressé soit prioritaire ( par exemple j'appuis sur Bouton 1, Son 1 se lance mais si j'appuis sur Bouton 2 avant que Son 1 soit fini, alors il se stoppe et Son 2 se lance.
N'y a t-il pas un moyen de vérifier toutes les conditions en même temps ? ( Certains sons sont déjà prioritaires : ceux dont les conditions sont avant les autres, " LaisseUn" s'arrête si j'appuis sur " LaisseDeux"... )
Merci d'avance pour votre aide :-D :-D

zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: Vérifier plusieurs conditions en même temps

Message par zugsoft » 24 Jan 2017 22:58

Bien compliqué ton idée.
Pourquoi ne pas faire qu'un seul audiosource, et faire un stop avant de faire un play, uniquement le dernier son sera joué, et le precedent sera stoppé
Moon RTS

Adrien3112
Messages : 36
Inscription : 28 Août 2015 19:44

Re: Vérifier plusieurs conditions en même temps

Message par Adrien3112 » 24 Jan 2017 23:02

Mettre un seul audiosource et le changer en fonction des boutons ?

Code : Tout sélectionner

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

public class Son : MonoBehaviour {
    public AudioSource Audio;

    public void Update()
    {
        if (Audio.isPlaying)
        {
            Audio.Stop();
        }
    }
}
Je suis pas sûr de comprendre
Re : J'utilise le système de boutons GUI, donc le script n'est pas directement sur le bouton.
J'ai essayé avec mon code et ça ne marche pas, car je ne " dis " pas ce qu'Audio est.
Comment l'indiquer ? Vu que je passe par les GUI, et que je ne peux pas mettre tous mes audios dans Audio.

zugsoft
Messages : 386
Inscription : 26 Juin 2014 23:43
Localisation : Swiss
Contact :

Re: Vérifier plusieurs conditions en même temps

Message par zugsoft » 25 Jan 2017 07:38

Tu dois creer autant de audioclip que tu as de son.
Ensuite tu creer une methode PlaySound(soundID) que tu appel sur chaque button de ton UI.
Tu lui passe en parametre le numero du son a jouer.
Moon RTS

Adrien3112
Messages : 36
Inscription : 28 Août 2015 19:44

Re: Vérifier plusieurs conditions en même temps

Message par Adrien3112 » 28 Jan 2017 11:34

Désolé pour mon manque de réponse, je n'ai pas pu m'occuper de ça.
Je t'avoue que je n'ai pas compris ton dernier message, en particulier la méthode PlaySound(soundID), qui n'existe pas ? ( J'ai cherché sur la doc et n'ai rien trouvé ).
J'ai décidé ( si je ne trouve pas d'autres solutions ), de faire un bouton Stop ce qui rendra l'application moins maniable mais beaucoup plus simple.
Merci beaucoup pour tes précédentes réponses et peut être à bientôt sur le forum :-D
Edit : J'ai trouvé la solution

Avatar de l’utilisateur
Max
Messages : 8772
Inscription : 30 Juil 2011 13:57
Contact :

Re: Vérifier plusieurs conditions en même temps

Message par Max » 28 Jan 2017 11:53

Adrien3112 a écrit : en particulier la méthode PlaySound(soundID), qui n'existe pas ? ( J'ai cherché sur la doc et n'ai rien trouvé ).
il ne s'agit pas d'une fonction native, zugsoft disait bien:
zugsoft a écrit : tu créés une methode PlaySound(soundID) que tu appelles ...
Adrien3112 a écrit :Edit : J'ai trouvé la solution
et qui est ?
Cela serait sympa de développer un peu ;)
Image
Pas d'aide par MP, le forum est là pour ça.
En cas de doute sur les bonnes pratiques à adopter sur le forum, consulter la Charte et sa FAQ

Adrien3112
Messages : 36
Inscription : 28 Août 2015 19:44

Re: Vérifier plusieurs conditions en même temps

Message par Adrien3112 » 28 Jan 2017 13:32

J'ai fait exactement ce qu'a dit zugsoft :gene2:
le code :

Code : Tout sélectionner

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

public class Son : MonoBehaviour
{
    public AudioSource Audio;
    public void Stop()
    {  
        if (Audio.isPlaying)
        {
            Audio.Stop();
        }
    }
    public void PlaySound(AudioClip audio)
    {
        Audio.PlayOneShot(audio);
    }
}
J'avais fait l'erreur de mettre le stop après le play et ne l'avais pas remarqué :gene2:
Merci pour tout ! :-D Vous êtes vraiment géniaux sur ce forum :-D

Répondre

Revenir vers « Scripting »