Я хочу преобразовать массив поплавок в байтовый массив, чтобы отправить его через сокет в сценарий Python. (Я делаю это в двигателе Unity).

Я пробовал:

float[] myArray = {0.0f, 0.0f, 0.0f};

int len = myArray.Length;
byte[] bytes = new byte[len];
int x = 0;

foreach(float f in bytes){
  byte[] t = System.BitConverter.GetBytes(f);
  for(int y = 0; y<4); y++){
    bytes[y + x] = t[y];
    x += 4;
  }
}

Результат следующий:

Активы \ placeScript.cs (106,27): Ошибка CS1002 :; ожидал

Активы \ placeScript.cs (106,33): Ошибка CS1002 :; ожидал

Активы \ placeScript.cs (106,33): Ошибка CS1513:} Ожидается

Я не привык работать с C # и не могу получить его на работу ... Я также смотрел на какой-то другой код Stackoverflow, но это не помогло.

0
fadop3 29 Сен 2019 в 13:32

1 ответ

Лучший ответ

Попробуйте следующее:

           float[] myArray = {0.0f, 0.0f, 0.0f};

           int len = myArray.Length;
           List<byte> bytes = new List<byte>();

           foreach (float f in myArray)
           {
               byte[] t = System.BitConverter.GetBytes(f);
               bytes.AddRange(t);
           }
           byte[] byteArray = bytes.ToArray();
1
jdweng 29 Сен 2019 в 10:41