minuschki Geschrieben 4. Dezember 2022 Melden Share Geschrieben 4. Dezember 2022 Und wieder ein kleines Problemchen. Ich speichere eine transform.localPosition (also Vector3 Daten) als string in eine Textdatei. Nach dem Einlesen eines gespeicherten Vector3 habe ich festgestellt, dass die Werte auf eine Stelle gerundet sind und nicht mehr dem ursprünglichen Wert exakt entsprechen. Der richtige Vector3 hat die folgenden Werte: new Vector3(0.0f, 1.036848f, -0.001028f) Gespeichert und wieder eingelesen werden aber folgenden Werte: new Vector3(0.0f, 1.0f, 0.0f) Debug.Log("Position: " + transform.localPosition); // ergibt (0.0f, 1.0f, 0.0f) Die Werte sind auf eine Stelle gerundet Debug.Log("Position: " + transform.localPosition.toString ("R")); // ergibt (0.0f, 1.036848f, -0.001028f) Diese Werte stimmen genau Wie kann man also die genauen Werte abspeichern, so dass beim erneuten Einlesen alle Kommastellen angezeigt werden? z.B. vec = new Vector3 (0.0f, 1.036848f, -0.001028f) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sascha Geschrieben 4. Dezember 2022 Melden Share Geschrieben 4. Dezember 2022 Moin! Wenn ToString("R") genau das macht, was du willst, warum nutzt du es dann nicht einfach? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
minuschki Geschrieben 4. Dezember 2022 Autor Melden Share Geschrieben 4. Dezember 2022 Hallo Sascha Zuerst dachte ich: Na du bist mir aber auch ein Spassvogel mit deiner kecken Antwort. Aber dann hat es bei mir langsam gedämmert und ich darf sagen, dass du wieder einmal goldrichtig lagst! Zwar konnte ich ToString("R") nicht innerhalb eines Vector3 benutzen aber als umgewandelter String hat es dann funktioniert: startPos = new List<Vector3>(); startPos.Add (Hip.transform.localPosition); string tt = startPos [0].ToString ("R"); Wahrscheinlich wäre es sogar klüger, gar nicht erst alle Positionen in einer Vector3 Liste zu sammeln und erst dann in einen String umzuwandeln, sondern die zu speichernden Positionen direkt mit transform.localPosition.ToString ("R") umzuwandeln und diese zu einem Sammelstring zusammenzufügen! Danke für deinen Denkanstoss! Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.