Unity实现串口通信发送16进制字符
前言
Unity在与硬件设备进行串口通信的时候,硬件那边只接收字符串有时候是不行的,还需要接收16进制的数据,在这里简单介绍下使用Unity发送16进制的串口信号。
步骤
一、首先开发配置文件功能,代码如下所示,完成后将其挂载到场景的物体上,在这里不再赘述:
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.IO;
using System;
/// <summary>
/// 配置文件读取
/// </summary>
public class ConfigTest : MonoBehaviour
{
private string configPath;
//在实际项目中我一般不会用静态类,在有频繁跳转场景的时候很容易出问题
//public static Dictionary<string, Dictionary<string, string>> dic;
public Dictionary<string, Dictionary<string, string>> dic;
private void Awake()
{
//读取配置文件(StreamingAssets)路径
configPath = Path.Combine(Application.streamingAssetsPath, "Config.txt");
if (dic == null)
{
dic = new Dictionary<string, Dictionary<string, string>>();
LoadConfig();
}
}
/// <summary>
/// 读取所有的数据
/// </summary>
void LoadConfig()
{
string[] lines = null;
if (File.Exists(configPath))
{
lines = File.ReadAllLines(configPath);
BuildDic(lines);
}
}
/// <summary>
/// 处理所有数据
/// </summary>
/// <param name="lines"></param>
private void BuildDic(string[] lines)
{
string mainKey = null;//主键
string subKey = null;//子键
string subValue = null;//值
foreach (var item in lines)
{
string line = null;
line = item.Trim();//去除空白行
if (!string.IsNullOrEmpty(line))
{
if (line.StartsWith("["))//取主键
{
mainKey = line.Substring(1, line.IndexOf("]") - 1);
if (dic.ContainsKey(mainKey))
{
return;
}
dic.Add(mainKey, new Dictionary<string, string>()