Wenn ich eine Spielszene durch Klicken auf die Schaltfläche "Wiederholen" in Unity neu lade, wird die Spielansicht automatisch dunkel, als ob die Skybox-Beleuchtungseinstellungen überhaupt nicht festgelegt wären.

Die Spielszene spielt sich zum ersten Mal einwandfrei ab, die Datei wurde gespeichert und beim Versuch, sie erneut abzuspielen, gehen die Lichteinstellungen aus. Ist es ein Beleuchtungsfehler in der Unity 5-Version?

0
V.Sriram 30 Dez. 2015 im 12:35

3 Antworten

Beste Antwort

Ich hatte das gleiche Problem und habe es behoben, indem ich "Auto" (zum automatischen Backen von Lichtkarten) unter Fenster> Beleuchtung> Szene deaktiviert und auf "Erstellen" geklickt habe.

Das gleiche Problem wird auf der Unity-Website beantwortet

1
Thomas 6 Jän. 2016 im 11:09

Ich hatte auch das gleiche Problem. Schalten Sie Baked Global Illumination im Bereich Mixed Lighting aus.

1
Saad Anees 12 Juni 2018 im 08:55

Überprüfen Sie, ob Sie Destroy() Objekte verwenden, die Sie nicht zerstören sollen. Sie könnten zum Beispiel diesen Fall haben:

public class LightInstantiator : MonoBehaviour
{
    public GameObject lightPrefab;
    private GameObject mySceneLight;

    void Start()
    {
        mySceneLight = Instantiate(lightPrefab);
    }

    void OnDestroy()
    {
        DestroyImmediate(lightPrefab); // BUG: you destroy the Prefab instead of the instance
    }
}

Dieses Beispielskript instanziiert das Szenenlicht für mich und zerstört es erneut, wenn es selbst zerstört wird. Das ist absolut legitim, aber ich habe versehentlich einen Fehler eingeführt: Wo ich das instanziierte Licht (mySceneLight) zerstören wollte, zerstöre ich tatsächlich das Fertighaus.

Auf den ersten Blick scheint alles in Ordnung, leicht und alles. Beim Stoppen und Neustarten der Szene führt Unity das (zuvor zerstörte) Fertighaus in mein Skript ein, das dann kein funktionierendes Licht instanziieren kann: Die Szene bleibt dunkel.

Etwas in diese Richtung ist mir einmal passiert. Ich weiß nicht, ob dies noch möglich ist, aber es könnte eine Überprüfung wert sein.

Nachgedacht:

Es kann sogar einfacher sein. Sie können das vorgefertigte Licht im Code versehentlich ändern, indem Sie seine Intensität beim ersten Durchlauf auf 0 setzen. Da es sich um ein Fertighaus handelt, kann Unity dies möglicherweise nicht zurücksetzen. Bei Ihrem zweiten Durchlauf beträgt die Lichtintensität des Fertighauses immer noch 0.

0
Thomas Hilbert 30 Dez. 2015 im 15:08