unity3d – 为什么串口不能在Unity中正常工作?

我需要帮助,我很绝望

在我工作的两周内,我使用串口通信(PIC串行板).我必须设置连接,但我无法从COM端口获取数据.我已经阅读了一些论坛,问题的原因似乎是System.IO.Ports类的不完整实现.

当我尝试获取COM端口的数据时,事件SerialDataReceivedEventHandler(表示将处理SerialPort对象的DataReceived事件的方法.)未被调用或激活.我试图解决它,但我没有找到明确的解决方案.我想要证明一个外部DLL,但是一位朋友告诉我问题会继续,实际上我做了它并得到了同样的问题:SerialDataReceivedEventHandler不起作用.此外,有人建议我使用辅助线程,虽然我根本不明白如何做到这一点.

我用Visual C#编写了一个程序,一切正常.我很好奇.

我需要找到一个解决方案,一些想法或好的文档.如果有人知道它的事情,请帮助我.

我需要了解这种情况继续下去的原因.

最佳答案 Unity基于Mono,而Mono并没有完全实现Serial类,特别是没有实现通知(例如SerialDataReceivedEvent).

这就是它在Visual Studio中工作的原因,而不是Unity中的原因.

以下是Serial类的Mono和完整.NET实现之间的区别:

摘自http://www.mono-project.com/archived/howtosystemioports/#limitations

“限制
在撰写本文时,必须注意一些限制:

1)没有收到的串行数据的事件通知.如果要接收数据,必须设置超时并通过在认为可能有数据时轮询ReadByte()来监视接收的数据.

2)必须只读取byte []格式的数据 – 没有char []支持.您必须自己读取字节并将其转换为编码.

3)DiscardNull,ParityReplace,ReceivedBytesThreshold未实现.“

点赞