Uduino和unity的联动(存在不认识设备的情况如何操作)
Uduino在导入unity有可能会出现找不到设备,此时我们可以导入Uduino Library这个插件,此时我们需要把Uduino/Arduino这个文件夹下面的文件目录拷贝到C:/Users/admin/Documents/Arduino/libraries(默认是这个目录下面)


此时我们能发现Unity可以认识Arduino设备,此时我们就可以正常看见我们的设备了

下面是示意代码
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Uduino;
public class ArdunioTest : MonoBehaviour
{
/// <summary>
/// 小灯管脚
/// </summary>
int pin11;
/// <summary>
/// 按钮管脚
/// </summary>
int pin2;
/// <summary>
/// Arduino设备
/// </summary>
UduinoDevice arduinoDevice;
public GameObject myCube;
// Start is called before the first frame update
void Start()
{
//当连接板子时触发
UduinoManager.Instance.OnBoardConnected += OnArduinoConnected;
}
/// <summary>
/// 当板子链接时
/// </summary>
private void OnArduinoConnected(UduinoDevice device)
{
//拿到pin口
pin11 = UduinoManager.Instance.GetPinFromBoard("11");
pin2 = UduinoManager.Instance.GetPinFromBoard("2");
//设置pin口控制方式
UduinoManager.Instance.pinMode(pin11, PinMode.PWM);
UduinoManager.Instance.pinMode(pin2, PinMode.Input_pullup);
}
float timeCount = 0;
int count;
bool isUp = true;
// Update is called once per frame
void Update()
{
//Huxideng();
//if (UduinoManager.Instance.hasBoardConnected())
//{
// //读取pin口数字量
// int a = UduinoManager.Instance.digitalRead(pin2);
// if (a == 0)
// {
// AddForcesToCube();
// }
//}
if (Input.GetKeyDown(KeyCode.Space))
{
count += 10;
if (count>255)
{
count = 0;
}
UduinoManager.Instance.analogWrite(pin11, count);
}
}
/// <summary>
/// 给Cube加力
/// </summary>
public void AddForcesToCube()
{
myCube.GetComponent<Rigidbody>().AddForce(Vector3.up * 10f);
}
/// <summary>
/// 呼吸灯
/// </summary>
private void Huxideng()
{
if (UduinoManager.Instance.hasBoardConnected())
{
timeCount += Time.deltaTime;
if (timeCount >= 0.01f)
{
if (isUp)
{
count++;
}
else
{
count--;
}
if (count >= 255)
{
count = 255;
isUp = false;
}
if (count <= 0)
{
count = 0;
isUp = true;
}
//写入pin口模拟量
UduinoManager.Instance.analogWrite(pin11, count);
timeCount = 0;
}
}
}
}