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 关注
- 140 浏览
添加回答
举报