[Débutant] Jeu en Pause

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
Avatar de l’utilisateur
chris40042
Messages : 9
Inscription : 18 Août 2015 11:44

[Débutant] Jeu en Pause

Message par chris40042 » 19 Août 2015 10:23

Bonjour a tous,

J'ai écrit une fonction toute simple pour mettre mon jeu en pause, alors je vous met le script.

Code : Tout sélectionner

using UnityEngine;
using System.Collections;

public class PAUSE : MonoBehaviour {

	void Start () 
	{
		Update ();
	}
	
	void Update () 
	{
		if (Input.GetKey(KeyCode.Escape))
		{
			Time.timeScale = 0;
		}
		else if (Input.GetKey(KeyCode.U))
        {
			Time.timeScale = 1;
		}
	}
}
Voila mon soucis, je voudrais que a la place de Keycode.U ca soit aussi escape qui resume mon jeu ! J'ai bien essayer de mettre un

Code : Tout sélectionner

else if (Input.GetKey(KeyCode.!Escape))
Histoire que n'importe quel autre touche resume le jeu mais ça ne fonctionne pas, donc je fais appel a vous et votre expérience :)
Au final j'aimerai que à la deuxième pression de Escape le jeu reparte !

Merci par avance
"Les vies les plus belles sont celles que l'on invente"

Avatar de l’utilisateur
nafasso
Messages : 23
Inscription : 15 Oct 2014 08:36

Re: [Débutant] Jeu en Pause

Message par nafasso » 19 Août 2015 10:29

Hello,

il me semble que tu devrais utiliser Input.GetKeyDown au lieu de GetKey
Input.GetKey retourne vrai pendant tout le temps ou tu maintiens la touche enfonce alors que Input.GetKeydown retourne vrai seulement la frame ou tu appuies dessus.

Code : Tout sélectionner

if (Input.GetKeyDown(KeyCode.Escape) && Time.timeScale != 0)
      {
         Time.timeScale = 0;
      }
      else if (Input.GetKeyDown(KeyCode.Escape) && Time.timeScale == 0)
        {
         Time.timeScale = 1;
      }
J'ai pas teste mais ca devrait marcher ;)

Avatar de l’utilisateur
chris40042
Messages : 9
Inscription : 18 Août 2015 11:44

Re: [Débutant] Jeu en Pause

Message par chris40042 » 19 Août 2015 10:40

Ça marche nickel merci ! J'avais pas pensé au condition, je suis plus habile en C je ne pensais pas que en C# c'était si proche, faut dire que j'apprend un peu au fur et a mesure :p

En tout cas bien sympa ce forum, inscrit depuis hier j'ai bien réussis a avancer !
"Les vies les plus belles sont celles que l'on invente"

Avatar de l’utilisateur
nafasso
Messages : 23
Inscription : 15 Oct 2014 08:36

Re: [Débutant] Jeu en Pause

Message par nafasso » 19 Août 2015 11:02

De rien, au plaisir :)
Pour l'instant je suis bloque dans mon projet aussi donc en attendant que quelqu'un puisse m'aider, j'aide ceux dans le besoin :lol:

Avatar de l’utilisateur
chris40042
Messages : 9
Inscription : 18 Août 2015 11:44

Re: [Débutant] Jeu en Pause

Message par chris40042 » 19 Août 2015 11:28

Merci !

A tout hasard, maîtrise tu les canvas pour crée le menu du jeu ? J'avoue que c'est assez flou, j'ai fait quelque recherche mais j'ai besoin de précision.

- Il faut que je crée une nouvelle scène dédié a ce menu ou je peux l'ajouter dans ma scène déjà existante ?
- Et deuxièmement je n'arrive pas a bouger mon canvas.. Ce qui pourrais avoir peut d'importance dans le cas ou je dois crée une nouvelle scène !

Car si c'est cette solution, je comprend bien que une des scènes va gérer le Menu, et donc faire appel a la scène de jeu quand on lui le demandera a l'aide d'un script. Si tu as quelques précision sur ce point, ou n'importe qui qui passerai par la je suis preneur ! :D
"Les vies les plus belles sont celles que l'on invente"

Avatar de l’utilisateur
nafasso
Messages : 23
Inscription : 15 Oct 2014 08:36

Re: [Débutant] Jeu en Pause

Message par nafasso » 19 Août 2015 11:40

Ouep, en fait le canvas tu le crees sur la scene directement. Il prend par defaut toute la taille de l'ecran, qu'importe ta resolution, il s'adaptera.
Ensuite ce que je te conseille c'est dans ton canvas vide, creer un gameObject qui va contenir tous tes elements du menu, car comme ca, lors de ton appuis sur la touche echap, si j'ai bien compris tes intentions, tu pourras l'afficher ou le cacher. Un canvas vide est invisible donc tu auras juste a desactiver le gameObject qui contient tes elements de menu et ton canvas se retrouvera donc vide :)

Code : Tout sélectionner

if (Input.GetKeyDown(KeyCode.Escape) && Time.timeScale != 0)
      {
         Time.timeScale = 0;
         Menu.SetActive(true);
      }
      else if (Input.GetKeyDown(KeyCode.Escape) && Time.timeScale == 0)
        {
        Menu.SetActive(false);
         Time.timeScale = 1;
      }	

Avatar de l’utilisateur
chris40042
Messages : 9
Inscription : 18 Août 2015 11:44

Re: [Débutant] Jeu en Pause

Message par chris40042 » 19 Août 2015 11:47

Tu as bien compris oui !
Cela veux dire que si je fait tenir mon menu sur un cube, je dois entrer toute les infos sur ce cube ?

En revanche j'ai un soucis avec ton Menu.SetActive, il ne correspond a aucun élément existant.
"Les vies les plus belles sont celles que l'on invente"

Avatar de l’utilisateur
nafasso
Messages : 23
Inscription : 15 Oct 2014 08:36

Re: [Débutant] Jeu en Pause

Message par nafasso » 19 Août 2015 12:24

en fait le Menu.SetActive je considere que Menu c'est le gameobject contenant tous les elements du menu, tu sais le game object dont je t'ai parle et je t'ai dit de le mettre dans le canvas et de mettre tous les elements (boutons, images, text) du menu dedans.
Grace a cette methode tu peux donc juste desactiver le gameobject et ton menu disparait. Je ne crois pas que le Canvas puisse etre desactive.

J'ai pas compris ton histoire de menu sur un cube ... Tu mets ton Canvas direct dans la hierarchy mais sans parent, il prendra toute l'espace de ta camera.

Avatar de l’utilisateur
chris40042
Messages : 9
Inscription : 18 Août 2015 11:44

Re: [Débutant] Jeu en Pause

Message par chris40042 » 19 Août 2015 12:49

A oui d'accord ! Je n'avais pas compris ça comme ça, merci !
"Les vies les plus belles sont celles que l'on invente"

Répondre

Revenir vers « (C#) CSharp »