1.安装压力计串口驱动,2可以通过串口助手测试
3打开设备管理器查看串口
///接受压力计数据:
using System.Collections;
using System.Collections.Generic;
using System.Threading;
using UnityEngine;
using System.ComponentModel;
using System.IO.Ports;
using System.Text.RegularExpressions;
using System.Text;
using System;
public class RecieveSport : MonoBehaviour
{
private SerialPort sp;
private Thread recvThread;//线程
[HideInInspector]
public float value;
void Start()
{
GameStatus status = LoadJson.LoadJsonFromFile();
//Debug.Log(status.com);
sp = new SerialPort(status.com, 9600, Parity.None, 8, StopBits.One);
//串口初始化
if (!sp.IsOpen)
{
sp.Open();
}
recvThread = new Thread(ReceiveData); //该线程用于接收串口数据
recvThread.Start();
}
private void ReceiveData()
{
try
{
string s = "";
//以行的模式读取串口数据
while ((s = sp.ReadLine()) != null)
{
//去除g
string[] s1 = s.Split(new char[] { ' ' });
string ss = s1[0];
if (ss == null || ss == "") continue;
value = float.Parse(ss);
}
}
catch (Exception ex)
{
Debug.Log(ex);
}
}
void OnApplicationQuit()
{
sp.Close();//关闭串口
}
}
需要注意的是,该脚本写的是子线程开始接受数据,但是发现子线程不能获取Unity身上组件
我另做一个脚本进行数据处理
需求:是一共有20个沙包,丢前3个沙包,视频播放速度回快些,后三个也会快些,到了一定时间视频自动播放
json:
{
"com": "COM1",
"oneSha": "60",
"shabegin1": "1",
"shaEnd1": "3",
"playSpeed1": "2",
"videoEndTime1": "3",
"shabegin2": "4",
"shaEnd2": "9",
"playSpeed2": "1.5",
"videoEndTime2": "6",
"shabegin3": "10",
"shaEnd3": "16",
"playSpeed3": "3",
"videoEndTime3": "11",
"videoName": "Video.mp4",
"vide