Unity3d 为什么不';t串行端口是否在统一中正常工作?
我需要帮助,我绝望了 在两周的时间里,我一直在我的项目中工作,这使用串行端口通信(PIC串行板)。我必须建立连接,但我无法从COM端口获取数据。我读过一些论坛,问题的原因似乎是System.IO.Ports类的实现不完整 当我尝试获取COM端口的数据时,未调用或激活事件SerialDataReceiveDevenHandler(表示将处理SerialPort对象的DataReceived事件的方法)。我试图解决它,但我没有找到一个明确的解决办法。我本想证明一个外部DLL,但一位朋友告诉我问题还会继续,事实上我这样做了,也遇到了同样的问题:SerialDataReceivedEventHandler不起作用。另外,有人建议我使用一个辅助线程,尽管我根本不知道如何做 我用visualc写了一个程序,一切都很好。我很好奇 我需要找到一个解决方案,一些想法或好的文档。如果有人知道这件事,请帮帮我Unity3d 为什么不';t串行端口是否在统一中正常工作?,unity3d,serial-port,Unity3d,Serial Port,我需要帮助,我绝望了 在两周的时间里,我一直在我的项目中工作,这使用串行端口通信(PIC串行板)。我必须建立连接,但我无法从COM端口获取数据。我读过一些论坛,问题的原因似乎是System.IO.Ports类的实现不完整 当我尝试获取COM端口的数据时,未调用或激活事件SerialDataReceiveDevenHandler(表示将处理SerialPort对象的DataReceived事件的方法)。我试图解决它,但我没有找到一个明确的解决办法。我本想证明一个外部DLL,但一位朋友告诉我问题还会
我需要理解这种情况继续下去的原因。我认为之所以会发生这种情况,是因为Unity是基于Mono而不是.Net的,而且是一个非常旧的版本。由于AOT缺陷,您很长一段时间无法在iOS设备上使用Linq,本地化实现也有缺陷(或者至少在我尝试使用的Unity的早期版本中是这样)。我甚至不能,所以它居然可以编译。Unity是基于Mono的,Mono没有完全实现Serial类,特别是没有实现通知(比如SerialDataReceivedEvent) 这就是为什么它在VisualStudio中工作,而不是在Unity中工作 以下是串行类的Mono和完整.NET实现之间的区别: 摘自 “限制 在撰写本文时,必须注意以下几个限制: 1) 接收到的串行数据没有事件通知。如果要接收数据,必须设置超时,并在您认为可能存在数据时通过轮询ReadByte()监视接收到的数据 2) 只能读取字节[]格式的数据–不支持字符[]。您必须自己读取字节并将其转换为编码
3) DiscardNull、ParityReplace、ReceivedBytestThreshold未实现。”请不要使用
unity
标记来回答与unity游戏引擎相关的问题。在使用之前阅读标签的描述通常是一个好主意。我有这个问题,在unity论坛上我读到问题是因为unity使用的是mono 2.0,串行数据事件没有正确实现,因此该事件不会触发该方法。您需要每X次检查一次该值,或者创建自己的dll来实现该值,但这更为困难。SerialPort是在Mono中实现的,甚至在Unity的Mono fork中,请参见此处:但有一些限制,特别是没有实现任何事件,详情如下: