У меня есть модуль Bluetooth, который передает поток строк в приложение Unity.Похоже на строковую переменную.Это x, y и z от датчика imu.Я пытаюсь разделить значения на их собственные переменные x, y, z, то есть: int x, int y и int z.
Так что, когда я пытаюсь код ниже.Это ошибка:
FormatException: входная строка была в неправильном формате.System.Number.StringToNumber (System.String str, параметры System.Globalization.NumberStyles, System.Number + NumberBuffer & number, информация System.Globalization.NumberFormatInfo, System.Boolean parseDecimal) (в: 0)
Code (csharp):
public void fishing()
{
string numo = "4,-1,5,7,8,10,5,-4,8,10,-30";
string[] splitted = numo.Split(',');
int[] nums = new int[splitted.Length];
for (int i = 0; i < splitted.Length; i++)
{
//source of error.
nums[i] = int.Parse(splitted[i],
System.Globalization.NumberStyles.AllowLeadingSign);
int x = nums[0];
int y = nums[1];
int z = nums[2];
Debug.Log(x);
Debug.Log(y);
Debug.Log(z);
}
}
Затем я попытался запустить код без целочисленного преобразования.Это ошибка:
IndexOutOfRangeException: индекс находился за пределами массива.
Code (csharp):
public void fishing()
{
string numo = "4,-1,5,7,8,10,5,-4,8,10,-30";
string[] splitted = numo.Split(',');
int[] nums = new int[splitted.Length];
for (int i = 0; i < splitted.Length; i++)
{
string x = splitted[0];
string y = splitted[1];
string z = splitted[2];
Debug.Log(x);
Debug.Log(y);
Debug.Log(z);
}
}
Итак, как объяснено, у меня есть строка x, y, z, x, y, z,x, y, z из модуля Bluetooth.Я хотел бы получить данные и установить их в качестве различных переменных.
int x;Int Y, INT Z
Надеюсь, вы можете помочь