在MeshGenerator.cs
中的ScaleVertexData
函数中,注释掉vbi[i].x *= scale; vbi[i].y *= scale;
并直接使用vbi[i] *= scale;
的原因可能是为了简化代码和提高性能。以下是代码的具体实现:
public void ScaleVertexData (float scale) {
var vbi = vertexBuffer.Items;
for (int i = 0, n = vertexBuffer.Count; i < n; i++) {
vbi[i] *= scale; // vbi[i].x *= scale; vbi[i].y *= scale;
}
meshBoundsMin *= scale;
meshBoundsMax *= scale;
meshBoundsThickness *= scale;
}
在这个函数中,vbi[i] *= scale;
直接对整个向量进行缩放,而不是分别对x
和y
分量进行缩放。这种做法的好处是:
- 简化代码:直接对向量进行缩放比分别对每个分量进行缩放更简洁。
- 提高性能:在某些情况下,直接对向量进行缩放可能会比分别对每个分量进行缩放更高效,因为它减少了循环体内的操作次数。
然而,具体的性能提升可能取决于编译器的优化和具体的硬件架构。在你的实测中,使用注释掉的办法(即分别对x
和y
分量进行缩放)性能更好,可能是因为在你的特定环境下,这种方式更符合编译器的优化路径或硬件的执行效率。
如果你发现注释掉的办法性能更好,可以继续使用这种方式,但需要确保在所有情况下都能正确处理数据。