実現したいこと
ラズピコを用いて生成した値をリアルタイムでunityに表示させたい
前提
Raspberry Pi Picoのコードはthonnyで書き、以下のコードになりました。
thonny
1import random 2import time 3 4 5while True: 6 random_number = random.randint(-20, 20) # -20から20までのランダムな整数を生成 7 print(random_number) 8 time.sleep(1) # 1秒待つ 9
tera termでRaspberry Pi Picoに値が生成されているのは確認済み
発生している問題・エラーメッセージ
consoleのデバッグログに何も表示されない
該当のソースコード
unity
1using UnityEngine; 2using System.IO.Ports; 3using System.Threading.Tasks; 4 5public class SerialDataReceiver : MonoBehaviour 6{ 7 SerialPort serialPort; 8 public string portName = "COM7"; // シリアルポートの名前を適切なものに変更 9 public int baudRate = 115200; // ボーレートの初期値を設定 10 11 private async void Start() 12 { 13 serialPort = new SerialPort(portName, baudRate); 14 serialPort.Open(); 15 16 await ReadSerialDataAsync(); 17 } 18 19 private async Task ReadSerialDataAsync() 20 { 21 while (true) 22 { 23 if (serialPort.IsOpen) 24 { 25 try 26 { 27 string data = await ReadLineAsync(serialPort); 28 Debug.Log("Received Data: " + data); 29 } 30 catch (System.Exception e) 31 { 32 Debug.LogError("Error reading data: " + e.Message); 33 } 34 } 35 await Task.Yield(); 36 } 37 } 38 39 private async Task<string> ReadLineAsync(SerialPort serial) 40 { 41 string data = await Task.Run(() => serial.ReadLine()); 42 return data; 43 } 44 45 void OnApplicationQuit() 46 { 47 if (serialPort.IsOpen) 48 { 49 serialPort.Close(); 50 } 51 } 52} 53
試したこと
上記のコードでデバッグログに値が表示されるか試した
補足情報(FW/ツールのバージョンなど)
unity 2022.3.5f1

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。