使用API接口在Untiy实现硬件的控制

各位Unity开发者,
你是否还停留在使用雷达和Kinect作为互动的传感器方案?
你是否还停留在给客人制作动画视频作为互动效果?
现在不必了,你尽管大胆展开想象!
Smart模块化控制器API For Unity 现已上线,轻松应对沉浸式互动需求!
全面兼容近70款传感器,可采集人的各种动作
轻松控制电机,灯光,喷烟机等设备,给客人更丰富的沉浸式体验!
现面向开发者免费开放,还可接入C#和Java哦!
使用API接口在Untiy实现硬件的控制_第1张图片


Smart模块提供的API(MCtrl)为电脑端控制硬件提供了便利的接口,
1.API 的基本使用方法可参加帖子Smart模块开放平台(API接口),或者api.yxyc.top
2.本帖子指导大家解决API接口在U3D中无法使用的问题。

1.将附件中的SmartCtrl 【留言邮箱获取】解压后整个拖入Assets文件夹(拖入即自动拷贝,你也可以手动拷贝到此目录)
使用API接口在Untiy实现硬件的控制_第2张图片
2.代码中传入端口号,由于平台特性,原有自动查找功能失效,需要在代码中传入。
即 RSBusCtrl RSBusCtrl = new RSBusCtrl(“COM9”);
这里的COM口,可以在设备管理中查看,当然前提是你的“总线转换器”已经插入才能找到。
使用API接口在Untiy实现硬件的控制_第3张图片
(友情提示)为了项目的部署方便,你应该使用一个配置文件或者自动程序来查找这个串口号。

解决了上述两个问题,即可正常使用了。
下面贴出一个简单的示例脚本,已经经过测试:

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using System.Diagnostics;
using MCtrl;


public class NewBehaviourScript : MonoBehaviour
{
     

    RSBusCtrl RSBusCtrl = new RSBusCtrl("COM9"); //重点,这里要传入参数。
    // Start is called before the first frame update
    void Start()
    {
     

        bool rs= RSBusCtrl.Start(1);
        UnityEngine.Debug.Log("start:"+ rs.ToString());
        RSBusCtrl.EventInput += RSBusCtrl_EventInput;
    }

    private void RSBusCtrl_EventInput(int id, int portNo, bool state)
    {
     
        UnityEngine.Debug.Log(string.Format("id:{0}portNo:{1},state:{2}",id,portNo,state));  
      
    }

    public void TestClick() //测试按键,点击一次实现输出口翻转的效果。
    {
     
        RSBusCtrl.OutSet(1, 1, !RSBusCtrl.GetOutputState(1, 1));
    }

    // Update is called once per frame
    void Update()
    {
     


        
    }
}

原贴:https://bbs.yxyc.top/thread-217-1-1.html

你可能感兴趣的:(程序设计,unity,unity3d)