Цель кода - объединить два байта в ushort.Все переменные имеют тип ushort, но M_hi и M_lo загружаются байтом.Изначально они были у меня всего в байтах, но эта ошибка произошла, поэтому я попытался вместо этого использовать ushort. Первая часть маскирует старший байт.Первоначально я пытался использовать это, чтобы предотвратить эту ошибку, потому что я думал, что компилятор считает, что она может переполниться.Хотя это не исправило это, но я решил оставить это пока.Затем он умножается на 0x100, что эффективно перемещает его в позицию старшего байта.Наконец, добавляем второе значение в качестве младшего байта.
cv.M = ((cv.M_hi & 0x00FF) * 0x100) + cv.M_lo;
Значения считываются из байтового массива, который хранит данные в порядке с прямым порядком байтов, поэтому мне нужно сделать что-то вроде этого, чтобы объединить их для использования значений ushort (И нет, я не могу преобразовать весь массив в big-endian).
В любом случае, я знаю, что алгоритм, который я использую, должен работать, но есть кое-что, что мешает этому работать как есть.Есть ли другие способы сделать это?Я также пытался проверить метод ToInt16, но, похоже, в Unity этого нет.