14 バイト目が改行である dsPIC 側から 14 バイトのデータを送信しています。Unity5ゲームエンジンを使用してシリアルポートデータを読み取るにはどうすればよいですか。私はさまざまな方法 (read()、readline()、readBytes() など) を使用していくつかのブログを読みました。一般的な提案は、serial.Read を使用することです。これを試したところ、Unity が動かなくなってしまいました。以下に示すサンプル プログラムでも同じ問題が発生します。誰かがこれを処理する適切な方法を提供できますか。
ありがとう、よろしく、アキル。
//Basic libraries
using UnityEngine;
using System.Collections;
#region Using directives
//Other libraries
using System;
using System.Collections.Generic;
using System.ComponentModel;
//Serial Port library.
using System.IO.Ports;
#endregion
public class MoveRacket : MonoBehaviour
{
public float speed = 30;
public string axis = "Vertical";
private SerialPort serial;
//public Action<byte[]> DataReceived;
void Start ()
{
serial = new SerialPort("COM3", 115200, Parity.None, 8, StopBits.One);
if (!serial.IsOpen)
{
try
{
serial.Open();
Debug.Log("Port Opened!");
}
catch(UnityException e)
{
// Basic exception handling
Debug.LogError(e.Message);
}
}
else
Debug.LogError("Port already open.");
}
void FixedUpdate ()
{
string tempS = serial.ReadLine();
if (tempS!="") {
Debug.Log("serial out "+tempS);
}
}
void End()
{
// Close the port when the program ends.
if (serial.IsOpen)
{
try
{
serial.Close();
Debug.Log("Port closed!");
}
catch(UnityException e)
{
Debug.LogError(e.Message);
}
}
}
}