.net - C# SerialPort EventHandler in Unity -
i writing c# code unity. reading serialport value in eventhandler. problem handler not called. here's code
using unityengine; using system.collections; using system; using system.io.ports; public class mainscript : monobehaviour { public serialport myserialport; public static float speed=100; gameobject cube ; public guistyle style ; // utilize initialization void start () { cube = gameobject.findgameobjectwithtag ("cube"); if(myserialport.isopen) myserialport.close(); myserialport = new serialport("com5"); myserialport.baudrate = 9600; myserialport.parity = parity.none; myserialport.stopbits = stopbits.none; myserialport.databits = 8; myserialport.handshake = handshake.none; myserialport.datareceived += new serialdatareceivedeventhandler (datareceivedhandler); if(myserialport.isopen == false) myserialport.open(); } void ongui(){ gui.box (new rect(100,100,100,100),"speed : " + speed , style); } // update called 1 time per frame void update () { // speed = myserialport.readto ("\r"); // update view speed new value cube.transform.rotate(vector3.up * speed *time.deltatime); } public static void datareceivedhandler(object sender, serialdatareceivedeventargs e) { serialport sp = (serialport)sender; speed = float.parse( sp.readto ("\r") ) ; print ("data recieved : " + speed); } } the problem not in serial port as, when read in update function unity reads right value but, there's performance issue updating ui.
thanks
c# .net unity3d serial-port
No comments:
Post a Comment