文字列として数字を送ります
Unity側(要SerialHandler)
using UnityEngine;
using System.Collections;
using System;//use for time
using UnityEngine.UI;//use for UI
public class serialSend : MonoBehaviour {
public SerialHandler serialHandler;
// Use this for initialization
void Start () {
serialHandler.OnDataReceived += OnDataReceived;
}
// Update is called once per frame
void Update () {
}
public void sendBtn(){
serialHandler.Write ("2");
}
void OnDataReceived(string message){
}
}
Canvasでボタンを作成し,public void sendBtn()をアサインしてください
Arduino側
int i = 0; // 文字数のカウンタ
void setup() {
Serial.begin(9600);
pinMode(13, OUTPUT);
}
void loop() {
if (Serial.available()) {
byte var = Serial.read();
var = var - 0x30;
switch (var) {
case 1:
//hoge(var);
Serial.println('1');
digitalWrite(13, HIGH);
delay(1000); // wait for a second
digitalWrite(13, LOW);
break;
case 2:
//hoge(var);
Serial.println('2');
digitalWrite(13, HIGH);
delay(2000); // wait for 2 second
digitalWrite(13, LOW);
break;
case 3:
Serial.println('3');
break;
}
}
}
文字列の扱いをcharでやると面倒なので(今回は数字だけなので)byteでやってみる
byteの数字は0が0x30らしいので,1(0x31)を送ってそれをひくと1になるらしい,,,
参考
シリアルモニタからArduinoへ数値を送る方法 – Qiita

シリアルモニタから数値を送り、Arduinoに数値に応じた処理をさせたいときがあります。しかし、以下のコードを書き込んでもちっとも反応してくれません。 sample1.ino void setup() { Serial.begin(9600); } void loop() { byte var = Serial.read(); switch (var) { case 1: //hoge(var); Serial.pr…” name=”description