2 回答

TA貢獻1829條經驗 獲得超7個贊
在 Arduino 端,您使用以下代碼:
void sendVector(float x, float y, float z) {
? Serial.print(x, 4);
? Serial.print(" ");
? Serial.print(y, 4);
? Serial.print(" ");
? Serial.println(z, 4);
}
這里要注意精度。對于浮點數來說Serial.print(x);
相當于Serial.print(x, 2);
給你兩位小數。Serial.print(x, 4);
給你四位小數。IE:
串行打印(1.23456)=>“1.23”
串口.print(1.23456, 2) => "1.23"
串口.print(1.23456, 4) => "1.2345"
現在,在 Unity 端,您使用 C# 代碼,例如:
string[] elements = stream.ReadLine().Split(' ');
float x = float.Parse(elements[0]);
float y = float.Parse(elements[1]);
float z = float.Parse(elements[2]);
transform.Rotate(x, y, z);

TA貢獻1909條經驗 獲得超7個贊
Arduino:打印所有三個變量并在它們之間使用分隔符,例如如下所示:
Serial.print(Variable1);
Serial.print("|"); //separator
Serial.print(Variable2);
Serial.print("|"); //separator
Serial.println(Variable3); //println instead of print on the last one
Unity:使用C#中的split函數將讀取的字符串拆分為數組:
string[] values = variable.Split('|');
變量值現在應該是一個包含三個元素的數組,可以將其解析為浮點數。
- 2 回答
- 0 關注
- 199 瀏覽
添加回答
舉報