1.要将playersetting下的optimization中的api COmpatibility Level设置为.net2.0才可实现serialport的new

2.在unity中对于serialport自带的datareceived方法是无法启用的,接收数据需要自己写
3.为了不影响主线程main-主要负责UI数据处理,对于串口数据的处理最好和主线程数据处理分开
4.串口数据处理时,数据的接收和数据处理也是最好分开处理,这是为了防止数据丢失(接收的数据快,处理数据慢)
5.如果开启线程不当可能会引起unity崩溃,如果是出现unity需要调试算是比较严重的情况了,重装unity或者重启机子都无法解决,现在针对出现这种情况做个总结:

(1)启动unity时按住alt,打开另一个工程
(2)打开任何项目都会崩时,删除C:\ProgramData\unity下面的文件(或者卸载的时候删除)
(3)如果都无法解决,只能看是否机子是否中毒了
6.数据接收和数据处理参考代码:
void Start ()
{
//设置com的portname、baudrate、parity、databits、stopbits
sp = new SerialPort(comname, 115200, Parity.Even, 8, StopBits.One);
if(!sp.IsOpen)
{
&

本文总结了Unity3D中使用C#进行串口通讯的关键点,包括API兼容性设置、数据接收与处理的独立线程、避免主线程影响以及处理可能的Unity崩溃情况。通过示例代码展示了数据发送、接收和处理的方法,帮助开发者理解如何高效且稳定地实现串口通信。
最低0.47元/天 解锁文章
4952





