Jump to content
Unity Insider Forum

Doubles und Playerprefs


Aquana

Recommended Posts

Hallo,

Ich versuch schon seit einigen Tagen Doubles zu speichern. Da es aber wie es scheint Playerprefs nur float, string und int speichert habe ich mir überlegt wie ich das umgehen kann. Also kam ich auf die Idee

erhöhe das Double und wandele es in ein Int um. Um zu überprüfen ob es sich tatsächlich auch so speichert habe ich noch printbefehle hinzugegeben. Also nehmen wir mal an ich habe mit klicks meinene Integer auf 12 erhöht und wechsle die Szene. Dort Ist auf einem anderen Objekt das gleiche Script. Jetzt wird mir immer noch 12als der Integer angezeigt über print. Außerdem habe ich in der Awake-methode dann die Doubles die sich nun ja nicht speichern lassen auf die Anzahl des Intergers gesetzt.(double) Number = (int)convertedNumber. Jetzt müsste Double doch eigentlich genauso groß sein wie der Integer oder nicht? Doch der Printbefehl gibt mir trotzdem aus das ich bei meinem Double nur 0 habe. Wenn ich dann zurück in die Anfansgszene wechsle und erneut das eigentlich gespeicherte hoch zählen will fängt alles dann deswegen wieder bei 1 an zu zählen. Kann mir jemand sagen warum mein Double nicht der Anzahl des Integers entspricht obwohl ich das ganze eigentlich sogar in der Awake-methode auf die gleiche Anzahl setzte?

 

 

 


    public Text doubleText;



    double Number ;
    int convertedNumber;

    void Awake()
    {

//umwandeln beim Szenenwechsel von Double=0 auf Double=convertedNumber

        Number = convertedNumber;
  
 


    
        //speichern des Münzentextes
        doubleText.text = "Münzen= " + PlayerPrefs.GetInt("Doublecoins1").ToString();
        //speichern der Münzenanzahl
        convertedNumber = PlayerPrefs.GetInt("DoublecoinsAnzahl1");
    }

    

    void OnMouseDown()
    {
        //ein Double in ein Int umwandeln


        Number += 1;
        convertedNumber += 1;
        convertedNumber = Convert.ToInt32(Number);
      


 
        //speichern von Text

        PlayerPrefs.SetInt("Doublecoins1", convertedNumber);

       //speichern der tatsächlichen Anzahl
        PlayerPrefs.SetInt("DoublecoinsAnzahl1", convertedNumber);
        doubleText.text = "Münzen= " + PlayerPrefs.GetInt("Doublecoins1").ToString();



    }

    void FixedUpdate()
    {

    
      
        print("convertedNumber"+convertedNumber);
        print("Number"+Number);
      
    }
}

Link zu diesem Kommentar
Auf anderen Seiten teilen

Danke Sascha für deine Hilfe. Jetzt habe ich aber letztendlich gesehen warum meine Methode nicht funktionierte. Noch bevor ich die gespeicherten "convertedNumber" aufgerufen habe, setzte ich bereits Number = convertedNumber. Da war es natürlich noch auf 0. Ich musste Number=convertedNumber nur ganz unten in Awake hinsetzten. Schon lief alles so wie ich es mir vorstellte mit nur einer kleinen Veränderung :D

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...