Jump to content
Unity Insider Forum

Problem mit Variable auf 0 zu setzen


acidrain83

Recommended Posts

hallo

 

ich habe ein kleines skript das die zeit ausgibt.das problem was ich jetzt habe ist das wenn ein neues level geladen wird , wird trotzdem einfach weitergezählt obwohl ich dieses skript im zweiten level nicht verwende sondern ein neues.

 

 

hier das zeit skript für das erste level:

#pragma strict

var timelabel : UI.Text;
var timeout : int;

private var start : int = 0;


// Use this for initialization
function Start () {

start =transform.position.x;
Debug.Log(start.ToString());
}

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

timeout = Time.time;
timelabel.text = timeout.ToString();

}

 

 

und er zählt auch schön im ersten level aber wenn das zweite level startet sollte eigentlich dieses skript  ausführen und nicht mehr das alte.

 

hier das skript für level 2

#pragma strict
var output : UI.Text;


private var zeit : int ;


function Awake () {
zeit = 0;
}

function Update () {

 zeit = Time.time;

 output.text = zeit.ToString();

 if (zeit  == 120){

 SceneManagement.SceneManager.LoadScene("game end");
 }

}

 

 

wie ihr seht wollte ich es in der fuktion awake direkt auf 0 setzen obwohl das ja eigentlich nicht nötig sein sollte weil ich bei der initialisierung nicht angegeben habe und somit sowieso 0 gewählt wird.

es funktioniert zwar wenn ich das level 2 direkt starte dann fängt er bei 0 an aber , spiele ich ab dem ersten level und komme dann zu dem zweiten level wird trotzdem die zeit vom ersten skript weiter gezählt....

 

WHY?

 

kann mir jemand helfen bitte.mfg

Link zu diesem Kommentar
Auf anderen Seiten teilen

Time.time

"This is the time in seconds since the start of the game."

 

In der zweiten Szene bekommst du also nicht die Zeit seit dem Beginn des 2. Levels, sondern seit Start des Spieles.

Ich würde einfach jeden Frame die vergangene Zeit seit dem letzten Frame zu 'zeit' addieren.

Also:

zeit += Time.deltaTime;

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

danke für eure antworten ich werde es mal testen.

und ich weiß nicht ob irgendein objekt zerstört wird..ich habe einfach eine neue scene erstellt und da meine prefabs eingefügt und den rollerball charaktercontroller.

und noch was eigentlich habe ich die punkte auch berechnenen lassen was funktioniert hat. jetzt aber einfach nicht mehr geht...hier der code:

#pragma strict

var timelabel : UI.Text;
var pointlabel: UI.Text;
var timeout : int;


private var start : int = 0;
private var points: int = 0;

// Use this for initialization
function Start () {

start =transform.position.x;
Debug.Log(start.ToString());
}

// Update is called once per frame
function Update () {
points = (transform.position.x - start);
timeout = Time.time;
timelabel.text = timeout.ToString();
pointlabel.text = points.ToString();
}

 

 

aber plötzlich geht es nicht mehr.

Link zu diesem Kommentar
Auf anderen Seiten teilen

was hab ich überlesen? meinst du das mit der Time.time   das das die zeit von anfang an ist?

oder das mit dem gameobject das nicht zerstört worden ist....

 

beim letzten post geht es ja darum das das mit den punkten einfach nicht mehr funktioniert.

 

 

wie zerstört man überhaupt ein object? also in Javascript

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 7 Stunden schrieb acidrain83:

was hab ich überlesen? meinst du das mit der Time.time   das das die zeit von anfang an ist?

Scheinbar, denn du benutzt Time.time ja immer noch, und hast deswegen immer noch dasselbe Problem vom ersten Post.

vor 7 Stunden schrieb acidrain83:

wie zerstört man überhaupt ein object? also in Javascript

Destroy(dasObjekt);

vor 7 Stunden schrieb acidrain83:

beim letzten post geht es ja darum das das mit den punkten einfach nicht mehr funktioniert.

Die Fehlerbeschreibung "funktioniert nicht" ist beinahe niemals ausreichend, um zu helfen. Du musst schon beschreiben, was passieren sollte, und was stattdessen passiert.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...