Jump to content
Unity Insider Forum

Custom Class - Daten Speichern und Abrufen


Bibo

Recommended Posts

Hallo zusammen,

ich arbeite gerade an einem kleinen Mathe-Spiel. Die Aufgaben werden anhand von Parametern erstellt und in eine eigene Klasse gespeichert.

ich erstelle also mit public class MathQuestion eine klasse und packe die variablen rein. 

Die Aufgaben im Spiel sind Multiple-Choice. FakeAnswers sind lediglich erstelle int, welche nahe dem richtigen Ergebnis sind.

 

Soweit, so gut. Nun erstelle ich in einem anderen Script eine Variable mit der variable MathTasks. Solange ich die int speichern will scheint alles zu funktionieren. Sobald ich fakeAnswers einen wert hinzufügen will wirft das System eine Fehlermeldung aus. Wo liegt das Problem?

 

Die erstelle Klasse:

-------------------------------------------------

using System.Collections.Generic;

public class MathQuestion
{
    public int a;
    public int b;
    public int answer;
    public List<int> fakeAnswers;
}

 

Ein anderes Script

----------------------------------------------------

 public MathQuestion question = new MathQuestion();

  private void AddInformationToMathClass()
    {
        question.a = _firstNumber;
        question.b = _secondNumber;
        question.answer = _result;
        question.fakeAnswers.Add(_result); ->FEHLER
        question.fakeAnswers.Add(_fakeResult); -> FEHLER
    }

Link zu diesem Kommentar
Auf anderen Seiten teilen

Moin!

Die "fakeAnswers"-Variable wird vermutlich null als Wert haben, also keine Liste referenzieren. Du musst irgendwo mit so etwas wie

fakeAnswers = new List<int>();

ein neues List-Objekt erstellen und die Referenz der Variable zuweisen.

P.S.: Um's anderen weniger schwer zu machen, bitte statt "eine Fehlermeldung" immer die Fehlermeldung posten. Der Inhalt ist ja nicht gerade unwichtig ;)

Link zu diesem Kommentar
Auf anderen Seiten teilen

Hallo, 

Welche Fehlermeldung du genau erhältst wäre schon hilfreich.

Ich rate mal ins blaue.

 In der class MathQuestion hast du  public List<int> fakeAnswers; eine Liste referenziert die aber noch auf null zeigt.

In der anderen Classe greifst du mit question.fakeAnswers.Add(_result); auf die fakeAnswers Liste zu die noch nicht Initialisiert ist. 

In der  class MathQuestion  hättest du mit public List<int> fakeAnswers = new List<int>(); die Liste Initialisiert

 

Sorry,  Sascha war mal wie immer 1 Minute schneller😉

Gruß Jog

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...