我想知道XNA中是否有Unity的Vector3Int
。我不想使用 Vector3 在一个结构中存储三个整数,但是我不想创建自己的类。是否存在的结构(例如 Point <-> Vector2 或矩形 <-> Vector4 ) Vector3 ?
答案 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;
}
}
这具有结构的优点,因为它存储在堆栈中。