Unity 中的 10个代码优化小技巧
又到了开学导员开会的时候。满屋子的学生听着比讲课还无聊空洞的东西,于是整齐地打开了手机。于是就在知乎看到了 默然的这篇文章:
Unite Talk 让INSIDE实现稳定60帧的工具,技巧和技术
该文翻译了 Unite 2016 《INSIDE》开发人员的演讲。其中介绍了 10 个 Unity 代码优化技巧。我觉得非常有意思和有启发性,但里面有些地方我持存疑态度,所以写篇文章进行记录,和验证。
1、通过合理的计算顺序来减少矢量操作次数
来看下面这几行代码:
Vector3 vec = new Vector3(1, 2, 3);
Vector3 nvec = vec * 3f * 2f;
Vector3 与 float 相乘,实际上是 Vector3 中的三个分量分别与 float 相乘,也就是进行了 三次乘法运算,然后返回乘后的 Vector3
那么对于上面的代码,vec 与 3f 相乘,进行了 3次 乘法运算,然后得到一个临时的 Vector3 我们称其为 temp。 然后 temp 与 2f 相乘,又进行了 3次 乘法运算。那么总共就进行了 6次 乘法运算。 但我们可以通过调整运算顺序来减少乘法次数:
Vector3 vec = new Vector3(1, 2, 3);
Vector3 nvec = vec * (3f * 2f);
这里我们只是加了一个括号,让 3f * 2f 先进行运算。那么这行代码的运算过程就是这样的:首先计算 3f * 2f 只需要一次乘法运算 得出 6f,然后计算 vec * 6f 需要三次乘法运算,得出最