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;
            }
        }
    }
}


Uduino下载链接