亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將多個變量從 Arduino 發送到 Unity?

如何將多個變量從 Arduino 發送到 Unity?

C#
慕仙森 2023-08-20 15:21:40
所以我目前有這個 arduino.ino:Serial.println(Variable1);在 Unity 中執行此操作:string variable1 = stream.ReadLine();float x = float.Parse(variable1);transform.Rotate (0, -x/1000, 0);我的問題是;我如何將 3 個變量從 Arduino 發送到 Unity,以便我可以transform.Rotate一次將每個值放入函數中?例如在偽代碼中:Arduino.inosend(Variable1, Variable2, Variable3);Unitytransform.Rotate(Variable1,Variable2,Variable3);我希望這是有道理的。謝謝。
查看完整描述

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);


查看完整回答
反對 回復 2023-08-20
?
jeck貓

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('|');

變量值現在應該是一個包含三個元素的數組,可以將其解析為浮點數。


查看完整回答
反對 回復 2023-08-20
  • 2 回答
  • 0 關注
  • 199 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號