Połączenie Arduino z Unity
W Unity włącz wersję .NET
using UnityEngine;
using System.IO.Ports;
public class ComData : MonoBehaviour
{
SerialPort portNo = new SerialPort("COM3", 9600);
void Start()
{
portNo.Open();
portNo.ReadTimeout = 5000;
}
public int Read()
{
if (portNo.IsOpen)
{
return portNo.ReadByte();
}
return 0;
}
public void Write(int data)
{
if (portNo.IsOpen)
{
portNo.Write(data.ToString());
}
}
}
Wysyłanie danych z Arduino do Unity
// Arduino
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
digitalWrite(LED_BUILTIN, HIGH);
Serial.write(1);
Serial.flush();
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
Serial.write(2);
Serial.flush();
delay(1000);
}
Wysyłanie danych z Unity do Arduino
//Arduino
void setup() {
Serial.begin(9600);
pinMode(LED_BUILTIN, OUTPUT);
}
void loop() {
if(Serial.available()){
String serialData = Serial.readString();
int a = serialData.toInt();
if(a==1){
digitalWrite(LED_BUILTIN, HIGH);
delay(1000);
digitalWrite(LED_BUILTIN, LOW);
Serial.flush();
}
}
}