Du bist nicht angemeldet.

Stilllegung des Forums
Das Forum wurde am 05.06.2023 nach über 20 Jahren stillgelegt (weitere Informationen und ein kleiner Rückblick).
Registrierungen, Anmeldungen und Postings sind nicht mehr möglich. Öffentliche Inhalte sind weiterhin zugänglich.
Das Team von spieleprogrammierer.de bedankt sich bei der Community für die vielen schönen Jahre.
Wenn du eine deutschsprachige Spieleentwickler-Community suchst, schau doch mal im Discord und auf ZFX vorbei!

Werbeanzeige

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

1

31.05.2018, 17:11

Unity UI updatet sich nicht und Werte werden außerhalb der Laufzeit gespeichert

Hallo,
ich habe hier ein Projekt eines Unity Anfängers hochgeladen

download Feed_Me_Fool.rar

, falls die Seite unseriös sein sollte, nennt mir bitte einen sicheren Upload :) . Das Minispiel ist ein typisches "Dinge fallen vom Himmel, du musst sie einsammeln, manche Dinge bringen Punkte, manche Dinge ziehen dir Punkte ab" - Spiel. Das Projekt an sich ist extrem simpel gehalten, in 5 min. nachgebaut etc. Nun gibt es zwei Probleme:

1. Das Highscore-Text-Element updated sich trotz

C#-Quelltext

1
txt.text = currentHighscore.ToString();
nicht. Obwohl er laut Debugger immer in die Methode reingeht.

Das finde ich sehr komisch, da sich der Text im Spiel eigentlich verändern sollte, der Wert ist ja erstmal egal. Aber da er in die Methode reinkommt, sollte sich da am Canvas etwas tun.

2. currentHighscore wird bei jedem Spielstart nicht wieder auf 0 gesetzt, obwohl im Code bei der Initialisierung die Variable mit 0 beginnt. Die Variable merkt sich immer den Wert des letzten Spielstandes.

Ebenfalls sehr komisch, da beim Spielstart, also ein kompletter Reset, ja nirgendwo Daten gespeichert werden. Man baut das Spiel ja quasi neu.

Ich selbst habe das Ganze mal bei mir am PC nachgebaut (gleicher Code) und es funktioniert wunderbar. Hat jemand Interesse, über das Projekt drüberzuschauen und möglicherweise zu entdecken, wieso diese beiden Probleme auftauchen? Ich hoffe, dass es ein ganz dummer Fehler ist, aber bei meinem nachgebauten Projekt trat dieser nicht auf. Ich selbst bin nur etwas überfragt, wieso bei ihm Werte außerhalb der Laufzeit übernommen werden und sich sein Text Element nicht updatet...

Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von »Garzec« (31.05.2018, 17:31)


Renegade

Alter Hase

Beiträge: 494

Wohnort: Berlin

Beruf: Certified Unity Developer

  • Private Nachricht senden

2

31.05.2018, 23:43

https://wetransfer.com/ ist seriös und bis 2GB.
Liebe Grüße,
René

David Scherfgen

Administrator

Beiträge: 10 382

Wohnort: Hildesheim

Beruf: Wissenschaftlicher Mitarbeiter

  • Private Nachricht senden

3

31.05.2018, 23:48

Oder einfach Dropbox ... Reinpacken, Link kopieren, fertig.

Garzec

Alter Hase

  • »Garzec« ist der Autor dieses Themas

Beiträge: 693

Wohnort: Gießen

  • Private Nachricht senden

4

01.06.2018, 06:58

@DNKpp hatte mir in Discord schon einen besseren Link gegeben :)

Das Problem wurde in Discord auch schon teilweise gelöst. Der Code ist korrekt, ebenso sind die Felder im Inspector zugewiesen. Dennoch haben die Collectables als Objektreferenz der Highscore zuerst die richtige Instanz und danach eine .. warum auch immer .. nicht existierende Instanz.

Das kam wohl dadurch zustande, dass Objekte in der Szene erstellt wurden, diese dann den Collectables zugewiesen wurden. Dann wurden diese Objekte zu Prefabs gemacht und gelöscht, dann wurde alles nochmal im Asset Ordner zugewiesen und wahrscheinlich ging es dann ein wenig durcheinander bei Unity, sodass bei seiner Version keine richtige Referenz mehr durch den Inspector besteht.

Nimmt man die Inspectorzuweisung weg und lässt kurz per Tag suchen, funktioniert es.

Werbeanzeige