Hi all, I have a script that gets values from a serial port from an Arduino, however when I hit play, unity editor hangs. How do I fix this? Thanks!
(this is my code for unity)
using UnityEngine;
using System.Collections;
using System.IO.Ports;
using System.IO;
using System;
using System.Linq;
using System.Collections;
using System.Collections.Generic;
public class musicScrip : MonoBehaviour {
private float amount;
private int var1;
private int var2;
private int var3;
SerialPort sp = new SerialPort("COM7", 9600);
void Start ()
{
sp.Open();
sp.ReadTimeout = 100;
}
void Update ()
{
if (sp.IsOpen) //youtube tutorial's method
{
try
{
serialEvent (sp);
}
catch (System.Exception)
{
throw;
}
}
}
void serialEvent(SerialPort myPort)
{
string myString = myPort.ReadLine(); //the ascii value of the "|" character
if(myString != null)
{
myString = myString.Trim(); //remove whitespace around our values
string[] inputs = myString.Substring(2, myString.Length-4).Split(',');
//now assign your values in processing
if(inputs.Length == 3)
{
var1 = Int32.Parse(inputs[0]);
var2 = Int32.Parse(inputs[1]);
var3 = Int32.Parse(inputs[2]);
Debug.Log(var1);
}
}
}
}
@DaveA hi, I saw that you had success with preventing unity from hanging when running the code to read data from the serial port, would you mind taking a look at my code? Thanks!
– aaabbbsssMark this answer as correct please if it did help.
– incorrect