Bonsoir à tous,
Dans mon jeu, j'ai besoin de mettre en pause le jeu pour afficher le menu du coup j'utilise time.timescale=0 qui mets bien en pause le cours du jeu.
Mais du coup, que mettre à la place de "void Update()" pour continuer une autre fonctionnalité de mon jeu ?
[RESOLU] [DB-AL] Continuer des fonctions avec update lorsque time.timescale=0
[RESOLU] [DB-AL] Continuer des fonctions avec update lorsque time.timescale=0
Dernière édition par Paullux le 01 Fév 2018 22:17, édité 1 fois.
J'ai créé un ensemble de jeux :
Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo
Il s'agit de FPS pour Android.
Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo
Il s'agit de FPS pour Android.
- boubouk50
- ModoGenereux
- Messages : 6214
- Inscription : 28 Avr 2014 11:57
- Localisation : Saint-Didier-en-Bresse (71)
Re: [DB-AL] Continuer des fonctions avec update lorsque time.timescale=0
Il me semble que l'Update() continue d'être appelé. Seul FixedUpdate () ne l'est plus puisqu'il est dépendant du temps.
Il faut juste ne pas utiliser le deltaTime qui vaudra 0 et rester indépendant du temps donc.
https://docs.unity3d.com/ScriptReferenc ... Scale.html
Il faut juste ne pas utiliser le deltaTime qui vaudra 0 et rester indépendant du temps donc.
https://docs.unity3d.com/ScriptReferenc ... Scale.html
"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
Nétiquette du forum
Savoir faire une recherche
Apprendre la programmation
Re: [DB-AL] Continuer des fonctions avec update lorsque time.timescale=0
Je plussoie Boubouk et je rajouterai même que tu peux certainement utiliser le unscaledDeltaTime pour pallier à ton soucis. Il ne dépend pas de la valeur de ton time.timescale.
https://docs.unity3d.com/ScriptReferenc ... aTime.html
https://docs.unity3d.com/ScriptReferenc ... aTime.html
On dit LE WiFi ! Y'en a marre !
(RÉSOLU) Re: [DB-AL] Continuer des fonctions avec update lorsque time.timescale=0
J'ai trouver une technique en grande partie grâce à vous deux :
Code : Tout sélectionner
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class Menu : MonoBehaviour
{
public GameObject Inventaire01, Inventaire02, Inventaire03, Inventaire04;
private bool CanChange;
// Use this for initialization
void Start()
{
Inventaire01.SetActive(false);
Inventaire02.SetActive(false);
Inventaire03.SetActive(false);
Inventaire04.SetActive(false);
Time.timeScale = 1;
CanChange = true;
}
void Update()
{
StopCoroutine("DetecteSortieDuMenu");
if (Time.timeScale == 1)
{
if (CanChange && Input.GetKey((KeyCode)PlayerPrefs.GetInt("menuInt")))
{
Time.timeScale = 0;
Inventaire01.SetActive(true);
Inventaire02.SetActive(true);
Inventaire03.SetActive(true);
Inventaire04.SetActive(true);
StartCoroutine("CanChanger");
}
} else
{
StartCoroutine("DetecteSortieDuMenu");
}
}
IEnumerator DetecteSortieDuMenu()
{
if (CanChange && Input.GetKey((KeyCode)PlayerPrefs.GetInt("menuInt")))
{
Time.timeScale = 1;
Inventaire01.SetActive(false);
Inventaire02.SetActive(false);
Inventaire03.SetActive(false);
Inventaire04.SetActive(false);
StartCoroutine("CanChanger");
}
yield return null;
}
IEnumerator CanChanger()
{
CanChange = false;
float timer = Time.unscaledTime;
while (Time.unscaledTime - timer < 2f)
{
yield return 0;
}
CanChange = true;
yield return null;
}
}
J'ai créé un ensemble de jeux :
Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo
Il s'agit de FPS pour Android.
Un HUB : https://bit.ly/2J6EZTO
Un jeu avec contrôle tactile à l'écran : https://bit.ly/2J3IkTw
Un jeu en VR : https://bit.ly/2h5jdzk
Un jeu en AR : https://bit.ly/2LgMvIo
Il s'agit de FPS pour Android.