XNA中有Vector3Int等效项吗?

时间:2019-04-19 22:46:45

标签: xna

我想知道XNA中是否有Unity的Vector3Int。我不想使用 Vector3 在一个结构中存储三个整数,但是我不想创建自己的类。是否存在的结构(例如 Point <-> Vector2 矩形 <-> Vector4 ) Vector3

1 个答案:

答案 0 :(得分:1)

答案是否定的。 Point是来自System.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;
   }
}

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