son qui est coupé au mileu

Questions à propos de la partie audio, y compris les problèmes de script s'y rapportant.
zatven
Messages : 9
Inscription : 10 Mai 2023 20:16

son qui est coupé au mileu

Message par zatven » 11 Mai 2023 17:49

Salut, je suis un debutant et j'ai suivie une video pour faire mon premier jeu (c un flappy bird). Apres avoir fini la video j'ai voulue ajouté quelque truc pasque dans la video il y avait le strict minimum. J'ai voulue rajouter un son quand le personnage meure le probleme c que dés que le personnage tombe dans le vide le son se coupe. Es que quelqu'un a une solution ( pour jouer le son j'ai utilisé .Play de l'audio source) ?
Dernière édition par zatven le 07 Juil 2023 20:00, édité 1 fois.

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: son qui est coupé au mileu

Message par boubouk50 » 11 Mai 2023 18:05

Il coupe avant d'être terminé :
- Est ce que l'objet sur lequel le son ou l'audioListener sont actifs? Le son peut se couper parce que l'objet qui le joue ou qui le diffuse sont détruits ou désactivés.
- Que se passe-t-il dans la scène : Changes-tu ou recharges-tu la scène? Un changement de scène recharge tout à zéro donc le son est coupé.
"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

zatven
Messages : 9
Inscription : 10 Mai 2023 20:16

Re: son qui est coupé au mileu

Message par zatven » 11 Mai 2023 20:09

l'objet qui joue le son est actif et il ne se desactive pas ni se detruit pas et juste j'affiche un UI ou il y a ecrit game over avec un bouton try again qui recharge la scene comme au debut. J'ai regarder quelque forum et j'ai trouver .PlayOneShot mais j'ai pas compris comme sa marche si je veux jouer un seul son, du coup j'ai bidouyer et j'ai mis un audiosource vide et le clip qui est le son que je voulais jouer a la base mais le sont et chelou en gros une parti du son se joue puis se coup et tout le son se joue puis a la fin le premier son qui était couper reprend

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: son qui est coupé au mileu

Message par boubouk50 » 12 Mai 2023 08:50

Donc tu as plusieurs sons ?

Une musique de jeu qui joue tout le temps et tu souhaites ajouter un son en plus par dessus lors de la mort ?
Dans ce cas, PlayOneShot () est ce qu'il te faut.
https://docs.unity3d.com/ScriptReferenc ... eShot.html
Le script de la doc te donne la solution. Attention, il te faut 2 audioSources, un pour l'ambiance et un autre pour le 2e son.

De ce que je comprends, le son joué lors de la mort supplante le son d'ambiance, plutôt que de jouer par dessus. Je ne sais pas s'il existe un paramètre spécial pour ça, ça ne me dit rien.
"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

zatven
Messages : 9
Inscription : 10 Mai 2023 20:16

Re: son qui est coupé au mileu

Message par zatven » 12 Mai 2023 15:29

ok merci ,bon en vrai j'avais pas vraiment de son d'ambiance mais c le prochain truc que je voulais ajouter donc dans tout les cas sa m'aide merci.

zatven
Messages : 9
Inscription : 10 Mai 2023 20:16

Re: son qui est coupé au mileu

Message par zatven » 14 Mai 2023 20:51

deso, j'ai pas pu donner de nouvelle pasque j'avais des truc a faire du coup aujourd'hui j'ai testé en ajoutent le fameux fond sonore pour le playOneShot mais du coup jsp pourquoi le son et toujours bizarre (le son se répète comme un éco)et pour voir j'ai tester avec un autre son et cette fois le son commence mais se joue 2 fois a la suit(enfin y en a un qui comme et avant qu'il finisse un autre commence)

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: son qui est coupé au mileu

Message par boubouk50 » 15 Mai 2023 08:46

N'aurais-tu pas deux sources ou deux listeners ?
Peux-tu nous envoyer ton code complet ?
"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

zatven
Messages : 9
Inscription : 10 Mai 2023 20:16

Re: son qui est coupé au mileu

Message par zatven » 20 Mai 2023 10:41

pardon encore une fois pour le temps que j'ai pris a repondre

code :

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class Logic : MonoBehaviour
{
    public int playerScore;
    public Text scoreText;
    public GameObject gameOverScreen;
    public AudioSource pointSFX;
    public AudioClip deathSFX;
    public AudioSource fondSFX;

    [ContextMenu ("Incease Score")]
    public void addScore(int scoreToAdd)
    {
        playerScore += scoreToAdd;
        scoreText.text = playerScore.ToString();
        pointSFX.Play();
    }

    public void restartGame()
    {
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

    public void gameOver()
    {
        gameOverScreen.SetActive(true);
        fondSFX.PlayOneShot(deathSFX, 1);
    }
}

Avatar de l’utilisateur
boubouk50
ModoGenereux
ModoGenereux
Messages : 6214
Inscription : 28 Avr 2014 11:57
Localisation : Saint-Didier-en-Bresse (71)

Re: son qui est coupé au mileu

Message par boubouk50 » 22 Mai 2023 10:50

Difficile de répondre.
Le code est fonctionnel, le souci pourrait venir des appels à fonctions. Par exemple, le fonction GameOver() est appelé plusieurs fois à la suite.
Pour le savoir ajoute un Debug.Log () dans les fonctions pour voir combien de fois elles sont appelées et par qui.

Code : Tout sélectionner

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
using UnityEngine.SceneManagement;

public class Logic : MonoBehaviour
{
    public int playerScore;
    public Text scoreText;
    public GameObject gameOverScreen;
    public AudioSource pointSFX;
    public AudioClip deathSFX;
    public AudioSource fondSFX;

    [ContextMenu ("Incease Score")]
    public void addScore(int scoreToAdd)
    {
        Debug.Log ("ADD SCORE");
        playerScore += scoreToAdd;
        scoreText.text = playerScore.ToString();
        pointSFX.Play();
    }

    public void restartGame()
    {
        Debug.Log ("RESTART GAME");
        SceneManager.LoadScene(SceneManager.GetActiveScene().name);
    }

    public void gameOver()
    {
        Debug.Log ("GAME OVER");
        gameOverScreen.SetActive(true);
        fondSFX.PlayOneShot(deathSFX, 1);
    }
}
Comme ça, quand tu fais une de ces actions, tu auras un Log dans ta console Unity, et tu sauras si elles sont appelées plusieurs fois. Pour chacune des fois, tu peux cliquer sur le Log et voir depuis où elles sont appelées, et donc déterminer d'où vient le problème.
"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

zatven
Messages : 9
Inscription : 10 Mai 2023 20:16

Re: son qui est coupé au mileu

Message par zatven » 22 Mai 2023 19:42

ok j'ai compris le probleme viens du gameover qui se lance tout le temps du coup ben le son se lance tout le temps mais du coup es qu'il y a un truc comme un void oncolider mais pour les position pasque quand le personnage touche un tuyau sa le lance juste une fois d'apres se que j'ai pu voire mais pour le gameover dans le vide j'ai juste ajouter un if dans le void update .

Verrouillé

Revenir vers « Audio, musique et sons »