2016-06-27 10 views
0

Also, ich habe ein skriptfähiges Objekt, das ich ein Datum verfolgen muss. Da skriptfähige Objekte auf ihren eigenen nicht den Überblick zu dem Zeitpunkt zwischen der Laufzeit halten, kam ich mit dem Follow-up:Warum habe ich Daten in skriptfähigen Objekten zwischen Läufen auf Android, aber nicht im Editor verloren?

public long EndTimeLong; 
private DateTime endTime; 
public DateTime EndTime 
{ 
    get 
    { 
     return endTime; 
    } 
    set 
    { 
     EndTimeLong = value.ToBinary(); 
     endTime = value; 
    } 
} 

Also, die EndTime auf einen beliebigen Wert einstellen, speichert sie als Binary in EndTimeLong.

Dann, kurz bevor ich das jemals zur Laufzeit verwenden, nenne ich die folgende Methode:

public void ReInit() 
{ 
    EndTime = DateTime.FromBinary(EndTimeLong); 
    ... 
} 

Also, bevor ich überhaupt das skriptfähige Objekt verwenden, sollte das ursprüngliche Datum gestellt werden.

Allerdings scheint dies im Editor zu arbeiten, aber es ist nicht in Android.

Die Art, wie ich sagen kann, ist, dass ich im Editor eine Methode ausführen, die endtime auf 60 Sekunden in der Zukunft setzt. Ich höre dann auf und starte den Editor zu spielen, und es weiß, dass Endtime in der Zukunft immer noch ist und entsprechend handelt. (zeigt einige Dinge etc) Auf Android jedoch behandelt es, als ob die Zeit nicht in der Zukunft ist. Warum sollte dieses Verhalten zwischen den beiden unterschiedlich sein? Und wie könnte ich das auflösen?

Antwort

0

Ich nehme an, Sie schreiben Ihren EndTimeLong-Wert in eine Datei zwischen Sitzungen und das ist, wie Sie es später laden. Wenn Sie mehr Informationen darüber bereitstellen, wie Sie Ihre Daten zwischen den Sitzungen speichern, können wir möglicherweise mehr Hilfe bereitstellen.

aber sagen, dass, wenn das alles ist, dass Sie zwischen den Sitzungen zu speichern brauchen würde ich stattdessen Verwendung von PlayerPref Sachen Unity machen: https://docs.unity3d.com/ScriptReference/PlayerPrefs.html