2 回答

TA貢獻(xiàn)1829條經(jīng)驗(yàn) 獲得超7個(gè)贊
在 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);
}
這里要注意精度。對(duì)于浮點(diǎn)數(shù)來(lái)說(shuō)Serial.print(x);
相當(dāng)于Serial.print(x, 2);
給你兩位小數(shù)。Serial.print(x, 4);
給你四位小數(shù)。IE:
串行打?。?.23456)=>“1.23”
串口.print(1.23456, 2) => "1.23"
串口.print(1.23456, 4) => "1.2345"
現(xiàn)在,在 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貢獻(xiàn)1909條經(jīng)驗(yàn) 獲得超7個(gè)贊
Arduino:打印所有三個(gè)變量并在它們之間使用分隔符,例如如下所示:
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函數(shù)將讀取的字符串拆分為數(shù)組:
string[] values = variable.Split('|');
變量值現(xiàn)在應(yīng)該是一個(gè)包含三個(gè)元素的數(shù)組,可以將其解析為浮點(diǎn)數(shù)。
- 2 回答
- 0 關(guān)注
- 222 瀏覽
添加回答
舉報(bào)