Есть ли в XNA эквивалент Vector3Int? - PullRequest
0 голосов
/ 20 апреля 2019

Интересно, есть ли в XNA эквивалент Vector3Int Unity?Я не хочу использовать Vector3 для хранения трех целых чисел в одной структуре, но я не хочу создавать свой собственный класс.Есть ли структура (например, Точка <-> Вектор2 или Прямоугольник <-> Вектор4 ) для Вектор3

1 Ответ

1 голос
/ 23 апреля 2019

Ответ - нет. 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;
   }
}

Это имеет преимущества структуры, так как она хранится в стеке.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...