Как я могу прочитать байтовый массив как многомерный массив в C #? - PullRequest
0 голосов
/ 23 марта 2019

Я пытаюсь использовать Python для отправки изображений в Unity C #, где я хочу отобразить изображения, наложенные на текущий дисплей (для каждого кадра). В настоящее время я использую zmq для получения байтового массива изображения PNG из python в Unity. Изображение в форме массива размером 256x256x4. При использовании функции np.tobytes длина сообщения составляет 2097152, что больше (256x256x4)

Как только сообщение отправлено в Unity, я пытаюсь получить массив цветов из массива байтов для использования Texture2D.readPixels32(), используя следующий фрагмент кода.

var colorArray = new Color32[message.Length/4];
for(var i = 0; i < message.Length; i+=4)
{
    var color = new Color32(message[i + 0], message[i + 1], message[i + 2], message[i + 3]);
    colorArray[i/4] = color;
}
Texture2D tex2new=new Texture2D(Screen.width,Screen.height);
print (Screen.height + " " + Screen.width + " " + colorArray.Length);
tex2new.SetPixels32(colorArray);

Ошибка SetPixels32 вызвана с недопустимым количеством пикселей в массиве UnityEngine.Texture2D:SetPixels32(Color32[]) Как мне прочитать байтовый массив в текстуру? Есть ли лучший способ отображать байтовый массив, когда игра в Unity ведется в режиме реального времени?

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