请参阅以下代码:
List<Vector2> axes = new List<Vector2>();
axes.Add(TopRight() - TopLeft());
axes.Add(BottomLeft() - TopLeft());
axes.Add(otherRectangle.TopRight() - otherRectangle.TopLeft());
axes.Add(otherRectangle.BottomLeft() - otherRectangle.TopLeft());
// Try normalizing vectors?
foreach (Vector2 axis in axes)
{
axis.Normalize();
}
该Vector2.Normalize()
方法是一个 void 方法,用于规范化它所调用的向量。但是由于某种原因,当我执行此循环时,它不会对向量进行归一化。我只是无法以这种方式修改列表吗?
一些怪事:
- 使用 for 循环进行迭代,即
axis[i].Normalize()
不起作用。 - 使用内置迭代器进行
List<T>.ForEach
迭代不起作用。 - 在将向量添加到列表之前创建规范化向量而不是遍历列表确实有效。
为什么迭代不起作用?