从历史上看,Unity3D 中的禁忌结构之一是使用 c#foreach块,因为循环的每次迭代都会不必要地消耗几个字节的数据。
好奇现代版本是否仍然如此?
我的谷歌搜索和(非常基本的)测试得出了非结论性的结果,我想在这里汲取别人的知识,而不是自己深入进行低级基准测试。 :-)
最近有没有人研究过这个以确定是否仍然有必要避免foreach在Unity3D中?
No, foreach
在“现代”统一中不再糟糕,但修复尚未完全发布。
它首先被固定在special build 统一补丁5.3.5p8七月初,您可以从here https://forum.unity3d.com/threads/upgraded-c-compiler-on-5-3-5p8.417363/#n21。这是一个特殊版本,您必须获得该版本才能获得该修复。
现在,Unity 将其编译器升级为Mono 4.4 on Unity 5.5 测试版 https://unity3d.com/unity/beta/unity5.5.0b10版本尚未最终版本。它修复了foreach
问题。一旦这个版本在未来几个月内发布,foreach
内存分配将成为过去。你仍然可以download https://unity3d.com/unity/beta出于测试目的,但不要发布具有测试版的游戏。
脚本:将 C# 编译器升级到 Mono 4.4。新的编译器仍然
面向 C# 4 和 .Net 3.5,但提供更好的性能和许多
bug修复。
现在已修复,但修复仍处于测试模式。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)