アウトドアとかゲーム開発とか

ロードバイクやキャンプなどアウトドアとUnityでの開発とか

【Unity】ArduinoがUSBで接続されてなくてもエラーが出ないようにする

ArduinoがUSBでつながってなかったとき、

IOException: The port `COM5' does not exist.

というエラーで止まってしまっていた。

よくUnityとArduinoの接続には

if (sp != null) {
    sp.Open ();
}

のように書いてあるけどダメ。

ということでアレコレ調べてたけど見つからないので無理やりやることに。

方法は有効なCOM番号を配列で取得して、その中に開きたいCOM番号の有無を調べる、といった感じ。

//通信ポート名の取得
string[] ports = SerialPort.GetPortNames();

if(ports.Length > 0){

    Debug.Log("有効なポートの数は" + ports.Length + "個だよ");
			
    foreach(string port in ports)
    {
        if(port == ポート番号){
            Debug.Log(ポート番号 + "はあるよ!");
        }
    }
}else{
    Debug.Log("有効なポートなんてないよ!");
}

とりあえずこんな感じでフラグを立てることでできた。
正解かどうかはわからないけど、とりあえずやりたいことができたのでOKとする。

参考:
truthfullscore.hatenablog.com