XNA 中是否有 Vector3Int 等价物?

Is there Vector3Int equivalentin XNA?

我想知道 XNA 中是否有 Unity 的 Vector3Int 等价物。我不想使用 Vector3 在一个结构中存储三个整数,但我不想创建自己的 class。是否有结构(如 Point<->Vector2Rectangle<->Vector4) 对于 Vector3?

答案是否定的。 PointSystem.Drawing 的遗留物,Rectangle 有助于 AABB 碰撞。

在浮点数中存储整数(它们消耗相同的内存量)的唯一警告是可能会损失精度,因为浮点数不能精确地存储某些值。在大多数情况下,这不是问题。浮点运算可能比整数运算慢。

我建议创建一个 Vector3Int 结构:

public struct Vector3Int
{
   public int X;
   public int Y;
   public int Z;

   public Vector3Int()
   {
     X = 0;
     Y = 0;
     Z = 0;
   }
   public Vector3Int(int val)
   {
     X = val;
     Y = val;
     Z = val;
   }
   public Vector3Int(int x, int y, int z)
   {
     X = x;
     Y = y;
     Z = z;
   }
}

这具有结构的优点,因为它存储在堆栈中。