Historisch gesehen war eines der Tabu-Konstrukte in Unity3D die Verwendung von c # foreach Block, da jede Iteration der Schleife ein paar Bytes Daten unzertrennlich verbrauchen würde.
Neugierig, wenn das bei modernen Veröffentlichungen immer noch so ist?
Meine Googles und (sehr rudimentären) Tests kommen mit nicht schlüssigen Ergebnissen daher, und ich möchte mich lieber von dem Wissen anderer ablenken, anstatt selbst in ein Benchmarking auf niedriger Ebene einzutauchen. : -)
Hat jemand vor kurzem dazu gegriffen, um festzustellen, ob es noch notwendig ist, foreach in Unity3D zu vermeiden?
Nein , foreach
ist nicht mehr schlecht in der "modernen" Einheit, aber die Lösung ist noch nicht vollständig freigegeben.
Es wurde Anfang Juli zuerst auf einem special build Unity Patch 5.3.5p8 behoben, das Sie von hier . Dies ist eine spezielle Edition, die Sie erhalten müssen, um dieses Update zu erhalten.
Nun hat Unity ihren Compiler im Unity 5.5-Beta auf Mono 4.4 aktualisiert Freigabe, die noch nicht endgültige Freigabe ist. Es hat das foreach
Problem behoben. Sobald diese Version in den kommenden Monaten veröffentlicht wird, gehört foreach
memory allocation der Vergangenheit an. Sie können immer noch herunterladen zu Testzwecken, aber veröffentlichen Sie kein Spiel mit einem Beta-Build.
Scripting: Aktualisieren Sie den C # -Compiler auf Mono 4.4. Der neue Compiler noch Ziele C # 4 und .Net 3.5, bietet aber eine bessere Leistung und viele Fehlerbehebungen.
Es ist jetzt behoben, aber das Update ist immer noch im Beta-Modus.
Tags und Links unity3d