[RESOLU][DB-AL][Unity 2D]Petit problème script

Pour les scripts écrits en C#
Règles du forum
Merci de respecter la NOMENCLATURE suivante pour vos TITRES de messages :

Commencez par le niveau de vos scripts
DB = Débutant
MY = Moyen
CF = Confirmé

Puis le domaine d'application
-RS = Réseau
-AL = Algorithmie

Exemple :

[DB-RS] Mouvement perso multijoueur
damien-max
Messages : 54
Inscription : 19 Déc 2017 23:44

[RESOLU][DB-AL][Unity 2D]Petit problème script

Message par damien-max » 11 Fév 2018 17:21

Bonjour,
j'ai un petit soucis sur mon script: Il marche parfaitement, mais pas pour l'audio: L'audio se lance quand le jeu est en pause et se désactive quand il n'est plus en pause.

J'ai essayé d'inverser les fonction audio.Play et audio.Pause mais ça ne marche pas :/

voici le script:

Code : Tout sélectionner

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

public class PauseMenu : MonoBehaviour {

	public static bool GameIsPaused = false;

	public GameObject pauseMenuUI;

	
	// Update is called once per frame
	void Update () {

		AudioSource audio = new AudioSource ();

		if (Input.GetKeyDown (KeyCode.Escape)) 
		{
			if (GameIsPaused)
			{
				Resume();
				audio.Pause ();
			}else 
			{
				Pause();
				audio.Play ();
			}
		}
	}

	public void Resume () 
	{
		pauseMenuUI.SetActive (false);
		Time.timeScale = 1f;
		GameIsPaused = false;
	}

	void Pause () 
	{
		pauseMenuUI.SetActive (true);
		Time.timeScale = 0f;
		GameIsPaused = true;
	}

	public void LoadMenu ()
	{
		Time.timeScale = 1f;
		SceneManager.LoadScene ("MainMenu");
		Debug.Log ("Retour vers le Menu");
	}

	public void QuitGame() 
	{
		Application.Quit ();
		Debug.Log ("RAGEQUIT");
	}
}
Merci de votre aide!

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

Re: [DB-AL][Unity 2D]Petit problème script

Message par Max » 11 Fév 2018 19:26

Bonsoir,

Je ne comprend pas trop pourquoi tu cherches à instancier un 'AudioSource' dans ton update... (une nouvelle instance 60 fois par seconde, c'est un chouia surfait)
Au niveau de gameobject sur lequel tu as ton script, tu dois avoir un component AudioSource, et au niveau de ton script il te suffit de le récupérer au départ.
Exemple:

Code : Tout sélectionner

    AudioSource audio;

	// Use this for initialization
	void Start () {
        audio = GetComponent<AudioSource>();
    }
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

damien-max
Messages : 54
Inscription : 19 Déc 2017 23:44

Re: [DB-AL][Unity 2D]Petit problème script

Message par damien-max » 11 Fév 2018 22:26

Max a écrit :
11 Fév 2018 19:26
Bonsoir,

Je ne comprend pas trop pourquoi tu cherches à instancier un 'AudioSource' dans ton update... (une nouvelle instance 60 fois par seconde, c'est un chouia surfait)
Au niveau de gameobject sur lequel tu as ton script, tu dois avoir un component AudioSource, et au niveau de ton script il te suffit de le récupérer au départ.
Exemple:

Code : Tout sélectionner

    AudioSource audio;

	// Use this for initialization
	void Start () {
        audio = GetComponent<AudioSource>();
    }
Donc j'ai fait ce que tu a dis, mais ça n'a pas l'air d'avoir résolu le problème de l'inversion... Je ne comprend pas I_I

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

Re: [DB-AL][Unity 2D]Petit problème script

Message par Max » 12 Fév 2018 00:14

damien-max a écrit :
11 Fév 2018 22:26
Donc j'ai fait ce que tu a dis, mais ça n'a pas l'air d'avoir résolu le problème de l'inversion... Je ne comprend pas I_I
as tu bien vérifié tes conditions ?
En parcourant vite fait ton code, on lit si GameEnPause alors Resume et ... audio.Pause();. Cela ne parait pas logique au prime abord....
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

damien-max
Messages : 54
Inscription : 19 Déc 2017 23:44

Re: [DB-AL][Unity 2D]Petit problème script

Message par damien-max » 14 Fév 2018 13:21

Max a écrit :
12 Fév 2018 00:14
damien-max a écrit :
11 Fév 2018 22:26
Donc j'ai fait ce que tu a dis, mais ça n'a pas l'air d'avoir résolu le problème de l'inversion... Je ne comprend pas I_I
as tu bien vérifié tes conditions ?
En parcourant vite fait ton code, on lit si GameEnPause alors Resume et ... audio.Pause();. Cela ne parait pas logique au prime abord....
Ca y est! J'ai trouvé une solution!

Enfaite, dans le void update, il y a deux void: Pause et Resume.
J'ai ajouté au début des deux "AudioSource audio = GetComponent<AudioSource>();".
Ensuite, j'ai mis "audio.Play();" à Resume et "Audio.Pause();" à Pause!

Merci beaucoup de m'avoir aidé :)
Dernière édition par damien-max le 16 Fév 2018 19:32, édité 1 fois.

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

Re: [DB-AL][Unity 2D]Petit problème script

Message par boubouk50 » 14 Fév 2018 14:56

damien-max a écrit :
14 Fév 2018 13:21
Ca y est! J'ai trouvé une solution!
Enfaite, dans le void update, il y a deux void: Pause et Resume.
J'ai ajouté au début des deux "AudioSource audio = GetComponent<AudioSource>();".
Ensuite, j'ai mis "audio.Play();" à Resume et "Audio.Pause();" à Pause!
C'est exactement ce que Max t'a dit de faire pour résoudre ton problème.
damien-max a écrit :
14 Fév 2018 13:21
Merci quand même de m'avoir aidé :)
Il t'a donné la solution, ce "quand même" est vraiment pas sympa pour lui.

Oui, j'ai décidé de faire mon chiant, et c'est tombé sur toi, mais cela est valable pour tout ceux qui liront. Quelque soit l'aide que les membres offrent, aussi minime soit-elle, ne mérite pas d'être balayée simplement parce que la solution n'a pas été mâchée entièrement.
Tous ces "merci quand même" qui sont assez légions m'agacent énormément. Vous venez demandez de l'aide, remerciez correctement les intervenants qui viennent vous prêter main forte et ne les jetez pas comme s'ils n'y étaient pour rien dans la résolution du problème.
Ça peut paraître dérisoire, aussi bien pour celui qui l'écrit, car ce n'est pas ce qu'il a voulu dire, que pour celui qui le reçoit parce que ce n'est pas "grave" en soi. Néanmoins, un vrai merci sera toujours agréable, de le donner et de le recevoir, alors pourquoi ne pas le faire...
Merci.
"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

damien-max
Messages : 54
Inscription : 19 Déc 2017 23:44

Re: [DB-AL][Unity 2D]Petit problème script

Message par damien-max » 15 Fév 2018 13:55

boubouk50 a écrit :
14 Fév 2018 14:56
damien-max a écrit :
14 Fév 2018 13:21
Ca y est! J'ai trouvé une solution!
Enfaite, dans le void update, il y a deux void: Pause et Resume.
J'ai ajouté au début des deux "AudioSource audio = GetComponent<AudioSource>();".
Ensuite, j'ai mis "audio.Play();" à Resume et "Audio.Pause();" à Pause!
C'est exactement ce que Max t'a dit de faire pour résoudre ton problème.
damien-max a écrit :
14 Fév 2018 13:21
Merci quand même de m'avoir aidé :)
Il t'a donné la solution, ce "quand même" est vraiment pas sympa pour lui.

Oui, j'ai décidé de faire mon chiant, et c'est tombé sur toi, mais cela est valable pour tout ceux qui liront. Quelque soit l'aide que les membres offrent, aussi minime soit-elle, ne mérite pas d'être balayée simplement parce que la solution n'a pas été mâchée entièrement.
Tous ces "merci quand même" qui sont assez légions m'agacent énormément. Vous venez demandez de l'aide, remerciez correctement les intervenants qui viennent vous prêter main forte et ne les jetez pas comme s'ils n'y étaient pour rien dans la résolution du problème.
Ça peut paraître dérisoire, aussi bien pour celui qui l'écrit, car ce n'est pas ce qu'il a voulu dire, que pour celui qui le reçoit parce que ce n'est pas "grave" en soi. Néanmoins, un vrai merci sera toujours agréable, de le donner et de le recevoir, alors pourquoi ne pas le faire...
Merci.
Le merci quand même été la pour justememnt le remercier, qu'il ne pense pas que je m'en foute justement... je le remerciais sincèrement, pas comme une poubelle :(

Je ne suis pas de ce genre là, sans lui, je n'aurais pas pu me rendre compte de mon erreur. Je n'aime pas qu'on me considère comme quelqu'un que je ne suis pas, je n'avais aucune mauvaise attention, je n'en avais pas...

Désolé.

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

Re: [RESOLU][DB-AL][Unity 2D]Petit problème script

Message par boubouk50 » 15 Fév 2018 16:43

Comme je l'explique, c'est le "quand même" qui est agaçant, même si le merci est là.
le "quand même" signifie que Max n'a pas participé à la résolution, donc c'est un merci minimisé bien qu'il t'aie donné la réponse.

Je suis allé voir le définition par curiosité:
Merci quand même: Formule de politesse pour remercier quelqu’un bien qu’il n’ait rien pu faire.

Comme dit, ça tombe sur ton message mais ç'aurait très bien pu être pour n'importe qui d'autre utilisant cette formule.
"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

damien-max
Messages : 54
Inscription : 19 Déc 2017 23:44

Re: [RESOLU][DB-AL][Unity 2D]Petit problème script

Message par damien-max » 16 Fév 2018 19:32

boubouk50 a écrit :
15 Fév 2018 16:43
Comme je l'explique, c'est le "quand même" qui est agaçant, même si le merci est là.
le "quand même" signifie que Max n'a pas participé à la résolution, donc c'est un merci minimisé bien qu'il t'aie donné la réponse.

Je suis allé voir le définition par curiosité:
Merci quand même: Formule de politesse pour remercier quelqu’un bien qu’il n’ait rien pu faire.

Comme dit, ça tombe sur ton message mais ç'aurait très bien pu être pour n'importe qui d'autre utilisant cette formule.
Alors c'est moi qui ne sait pas parler ^^ . Autant pour moi! Je vais donc le retirer.

Répondre

Revenir vers « (C#) CSharp »