Jump to content
Unity Insider Forum

Dami1302

Members
  • Gesamte Inhalte

    14
  • Benutzer seit

  • Letzter Besuch

Alle erstellten Inhalte von Dami1302

  1. Dami1302

    Dynamisches Array

    Hallo. Ich soll ein dynamisches Array serialisieren und in eine binäre Datei schreiben. Dabei sollen die Daten zum Test wieder zurückgelesen und die deserialisierten Werte als Liste ausgegeben werden. Ich habe auch schon ein Skript, aber leider funktioniert es nicht: #pragma strict //für den Typ List import System.Collections.Generic; //für den Namensraum System.IO import System.IO; //für den BinaryReader import System.Runtime.Serialization.Formatters.Binary; //für das Prefab var prefabOutput : UI.Text; public class ScoreItem implements System.IComparable { private var points : int; private var name : String; public function ScoreItem (poi : int, nam : String) { points = poi; name = nam; } public function GetName() : String { return name; } public function GetPoints() : int { return points; } } //die Liste private var highscore : List.<ScoreItem> = new List.<ScoreItem>(); var Name : Array = new Array(); var Punkte : Array = new Array(); function Start () { for (var index : int = 0; index < 10; index++) { Name.Push ("Test"); } for (var inde : int = 0; inde < 10; inde++) { Punkte.Push (10); } //die Liste erstellen highscore = new List.<ScoreItem>(); //einige Einträge erzeugen highscore.Add(new ScoreItem(10, "Test")); highscore.Add(new ScoreItem(20, "Test 1")); //für die neuen Instanzen var outputName : UI.Text; var outputPoints : UI.Text; //die Liste laden bzw. neu erzeugen LoadList(); //Canvas beschaffen var myCanvas = GameObject.Find("Canvas"); //und ausgeben for (var temp : ScoreItem in highscore) { outputName = Instantiate(prefabOutput); //das übergeordnete Element setzen outputName.transform.SetParent(myCanvas.transform, false); //den Text setzen outputName.GetComponentInChildren.<UI.Text>().text = temp.GetName(); //und noch einmal für die Punkte outputPoints = Instantiate(prefabOutput); outputPoints.transform.SetParent(myCanvas.transform, false); outputPoints.GetComponentInChildren.<UI.Text>().text = temp.GetPoints().ToString(); } } function LoadList() { //für den Dateinamen var filename : String; //für den FileStream var myFileStream : FileStream; filename = Path.Combine(Application.persistentDataPath, "highserial.bin"); //gibt es die Datei? if (File.Exists(filename)) { //eine neue Instanz von FileStream erzeugen //die Datei wird zum Lesen geöffnet myFileStream = new FileStream(filename, FileMode.Open, FileAccess.Read); //eine Instanz von BinaryFormatter erzeugen var binaryformat : BinaryFormatter = new BinaryFormatter(); //die Daten deserialisieren und in highscore ablegen highscore = binaryformat.Deserialize(myFileStream) as List.<ScoreItem>; myFileStream.Close(); } //sonst 10 leere Einträge erzeugen else { for (var count : int = 0; count < 10; count++) highscore.Add(new ScoreItem(0, "leer")); } } function SaveList() { //für den Dateinamen var filename : String; //für den FileStream var myFileStream : FileStream; filename = Path.Combine(Application.persistentDataPath, "highserial.bin"); //eine neue Instanz von FileStream erzeugen //der Inhalt wird überschrieben myFileStream = new FileStream(filename, FileMode.Create); //eine Instanz von BinaryFormatter erzeugen var binaryformat : BinaryFormatter = new BinaryFormatter(); //die List sortieren highscore.Sort(); //die Daten speichern, dazu wird einfach die Liste serialisiert binaryformat.Serialize(myFileStream, highscore); myFileStream.Close(); } function OnApplicationQuit() { SaveList(); } Kann mir jemand dabei helfen ?
  2. Ich mache gerade meinen eigenen Sidescroller mit einem RollerBall Controller. Im Moment arbeite ich an einer Anzeige für Leben. Es soll so funktionieren: Wenn die Kugel die Spielbahn verlässt soll ein Leben abgezogen werden. Außerdem soll die Anzahl der Abstürze und die noch verbleibenden Leben angezeigt werden. Könnt ihr mir da helfen ?
×
×
  • Neu erstellen...