2017-02-21 1 views
-1

Ich habe ein Spiel mit vielen Menüs. Die Menüs haben ihre eigenen Skripte, die ich nicht unbedingt anhalten möchte, nur weil der Benutzer das Menü nicht sehen kann.Unity Performance-Drain von nicht-sichtbaren UI

Aus diesem Grund übersetze ich gerade die Leinwände einfach vom Bildschirm, damit der Benutzer sie nicht sehen kann und die Skripts weiterhin ihr Ding machen können.

Kann jemand etwas über den Leistungsabfall der nicht sichtbaren UI sagen? Kostet es viel, 200 Etiketten, 50 Bilder und 50 Knöpfe aktiv zu haben, aber außerhalb des Bildschirms, oder ist alles sofort weggefallen und macht es im Grunde nichts, was die Leistung angeht?

In diesem Zusammenhang bin ich auch neugierig, ob es in Ordnung ist, mehrere Vollbild-Menüs in der gleichen Leinwand wie ich derzeit, oder wäre es viel besser, jedem Menü eine eigene Leinwand zu geben? Wenn die nicht sichtbare Benutzeroberfläche eine Menge Leistung abbaut, während sie nicht sichtbar ist, würde ich die letztere Option verwenden, um die Zeichenfläche zu deaktivieren, aber das Skript weiterhin auszuführen. Wäre das der richtige Weg?

+0

Nur weil es off-Screen ist bedeutet nicht, dass seine Update-Funktion nicht aufgerufen wird. Sie sparen wahrscheinlich fast nichts. Zugegeben, Sie müssen nicht auf dem Bildschirm zeichnen, aber Sie müssen sie immer noch im Speicher ablegen und dort aktive Funktionen aufrufen. –

Antwort

0

Ich kann bestätigen, dass nach der Deaktivierung der UI-Elemente, die nicht gezeigt werden, eine enorme Leistungssteigerung zu verzeichnen war. Um Skripts am Leben zu erhalten, kann man einfach eine kleine Funktion schreiben, die überprüft, ob es Skripte auf einem GameObject gibt, das gerade deaktiviert wird.

0

Die Leistung ist wirklich schlecht. Auch Rendering-Vorgänge werden aufgerufen, solange sie aktiv sind, egal wie weit weg von der Kamera sie sich verstecken.

Es ist besser, nur eine Leinwand zu haben, als eine Menge davon.

+0

Nun, du hast im Grunde genommen gesagt, dass es schlecht ist, mehrere Leinwände zu haben, aber du hast auch angedeutet, dass es schlecht ist, nur eine Leinwand zu haben, indem du sagst, dass die Leistung schlecht ist, wenn viele Dinge gerendert werden, selbst wenn die Kamera ist zeige sie nicht. – Tavados

+0

Sie können die Spielobjekte deaktivieren. Inaktive Spielobjekte haben keinen Einfluss auf deine Leistung. –

+0

"Die Menüs haben ihre eigenen Skripte, die ich nicht unbedingt anhalten möchte, nur weil der Benutzer das Menü nicht sehen kann." – Tavados