Chronomètre se ré-initialise entre 2 Scènes

Pour les scripts écrits en Javascript (UnityScript). :!: Obsolète :!:
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
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Chronomètre se ré-initialise entre 2 Scènes

Message par kealkeal » 28 Oct 2015 10:42

Bonjour,

Je souhaite mettre en place un Chronomètre dans mon Projet.

Mon projet contient plusieurs Scènes.

J'aimerai que le Chronomètre soit gardé lors de la navigation de Scène en Scène.

Voici mon code :

Code : Tout sélectionner

#pragma strict

var startTimer:int;
var minutes : int;
var seconds : int;
public var GuiSkin : GUISkin; 
public var X:int;
public var Y:int;

public var Chronometre:GameObject;

function OnEnable () {

    Debug.Log("Script activé");
    startTimer = Time.time;
}

function Update () {

    var time = Time.time - startTimer;
    minutes = time / 60;
    seconds = time % 60;
} 

function OnGUI () {

    GUI.skin =GuiSkin;
    GUI.Label (Rect (20, 15, X, Y), String.Format ("{0:00}:{1:00}", minutes, seconds));
}

function Awake () {

    DontDestroyOnLoad (Chronometre);
}
ici j'ai bien mon Chronomètre visible lorsque je me déplace de Scène en Scène, mais le problème c'est que le Chronomètre repart à 0 lorsque j’accède à la Scène suivante.

Pourriez-vous m'aider à résoudre ce probleme ? :)
kealkeal

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

Re: Chronomètre se ré-initialise entre 2 Scènes

Message par boubouk50 » 28 Oct 2015 10:47

Rien d'autre qui pourrait réinitialiser ton chrono? Genre le OnEnable () qui est appelé au début d'une scène? Si tu as un message console "Script activé" au début de scène alors ça vient de là.
Là, le code semble correct.
"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

Avatar de l’utilisateur
kealkeal
Messages : 925
Inscription : 16 Juil 2010 17:31
Localisation : Paris

Re: Chronomètre se ré-initialise entre 2 Scènes

Message par kealkeal » 28 Oct 2015 10:57

Tu as raison, le problème venait bien de OnEnable ().

Voici le code corrigé et qui fonctionne parfaitement :

Code : Tout sélectionner

#pragma strict

var startTimer:int;
var minutes : int;
var seconds : int;
public var GuiSkin : GUISkin; 
public var X:int;
public var Y:int;
public var Chronometre:GameObject;

function Update () {

	var time = Time.time + startTimer;
	minutes = time / 60;
	seconds = time % 60;
}

function OnGUI () {

	GUI.skin = GuiSkin;
	GUI.Label (Rect (20, 15, X, Y), String.Format ("{0:00}:{1:00}", minutes, seconds));
}

function Awake () {

	DontDestroyOnLoad (Chronometre);
}
Merci pour ton aide. ;-)
kealkeal

Verrouillé

Revenir vers « (Js) Javascript »