Beiträge von HeftchenHeld

    Hier der Komplette Code(es soll ein Level Generator werden):

    Hallo ich habe eine For Schleife die Gameobjekte zählen soll es aber nicht tut:


    Code
    1. GameObject[] Türen = { Tür1, Tür2, Tür3, Tür4, Tür5, Tür6 };
    2. for (int i = 0; i <= 6; i++)
    3. {
    4. if (Türen[i] == false)
    5. {
    6. return i;
    7. }
    8. }

    Die Schleife soll das Array Türen durchgehen und abbrechen wenn eine Tür im Array nicht aktiv ist dann soll der Übergabe Parameter i zurückgegeben werden.
    Wenn die Schleife 6 mal durchgelaufen ist soll i mit dem Wert 6 zurückgegeben werden. Aus irgendeinem Grund ist i immer null egal wieviele Gameobjekte Aktiv sind.
    Was habe ich hier falsch gemacht?


    Vielen Dank für eure Antworten.

    Ich habe die methode:


    private void IPT()//
    {
    Tür1 = GameObject.FindGameObjectWithTag("Tür1");
    Tür2 = GameObject.FindGameObjectWithTag("Tür2");
    Tür3 = GameObject.FindGameObjectWithTag("Tür3");
    Tür4 = GameObject.FindGameObjectWithTag("Tür4");
    Tür5 = GameObject.FindGameObjectWithTag("Tür5");
    Tür6 = GameObject.FindGameObjectWithTag("Tür6");
    BackTür1 = GameObject.FindGameObjectWithTag("BackTür1");
    BackTür2 = GameObject.FindGameObjectWithTag("BackTür2");
    BackTür3 = GameObject.FindGameObjectWithTag("BackTür3");
    BackTür4 = GameObject.FindGameObjectWithTag("BackTür4");
    BackTür5 = GameObject.FindGameObjectWithTag("BackTür5");
    BackTür6 = GameObject.FindGameObjectWithTag("BackTür6");
    Tisch = GameObject.FindGameObjectWithTag("Tisch");
    Papier = GameObject.FindGameObjectWithTag("Papier");
    currentscenefind();
    }


    Sie soll alle vorhandenen Türen in der Scene in Variablen speichern.
    In der Update Methode steht: DontDestroyOnLoad(transform.gameObject);. Das ganze ist deswegen so gemacht weil ich sehr oft die Scenen Wechsel.
    Bei einem scenen Wechsel werden keine Gameobjekte erkannt.
    D.h. in der methode danach in der die Variablen in ein Array gepackt werden und etwas damit gemacht wird stürzt es ab mit einer Fehlermeldung in der steht:
    "NullReferenceException: Object Reference not set to an Instance of object"


    Hier die methode in der die Fehlermeldung auftaucht:


    private void PlaceThings(int auswahl) //braucht man nur fürs zurückgehen und zum platzieren der Türen
    {
    if (auswahl == 0)
    {
    int AnzahlTüren = ZählTüren(0);
    Debug.Log(AnzahlTüren);
    int AnzahlBackTüren = ZählTüren(1);
    Debug.Log("Backtüren:" + AnzahlBackTüren);
    GameObject[] Türen = { Tür1, Tür2, Tür3, Tür4, Tür5, Tür6 };
    GameObject[] BackTüren = { BackTür1, BackTür2, BackTür3, BackTür4, BackTür5, BackTür6 };
    for (int i = AnzahlTüren - AnzahlTüren; i >= 0; i--)
    {
    Türen[i].SetActive(false);
    Debug.Log("For");
    }
    for (int i = 6; i == 0 + AnzahlTüren; i--)
    {
    BackTüren[i].SetActive(false);
    }


    }
    if (auswahl == 1)
    {
    int AnzahlErforderlicherTüren = ZählTüren(3); //muss noch einprogrammiert werden
    int AnzahlerforderlicherBackTüren = ZählTüren(4);//muss noch einprogrammiert werden
    }
    }


    Vielleicht sieht einer den Dummen Fehler den ich gemacht habe.
    Vielen Dank für eure Antworten.