- 0
- 0
- 0
分享
- 使用API接口在Untiy实现硬件的控制
-
原创 2020-04-08
各位Unity开发者们:
你是否还停留在使用雷达和Kinect作为互动的传感器方案?
你是否还停留在给客人制作动画视频作为互动效果?
现在不必了,你尽管大胆展开想象!
Smart模块化控制器API For Unity现已上线,轻松应对沉浸式互动需求!
全面兼容近70款传感器,可采集人的各种动作
轻松控制电机,灯光,喷烟机等设备,给客人更丰富的沉浸式体验!
现面向开发者免费开放,还可接入C#和Java哦!
----------------------------------------------------------------------------------------------------------------------------
接下来是接入说明哦:
Smart模块提供的API(MCtrl)为电脑端控制硬件提供了便利的接口,
1.API 的基本使用方法可参加帖子Smart模块开放平台(API接口),或者api.yxyc.top
2.本帖子指导大家解决API接口在U3D中无法使用的问题。
----------------------------------------------------------------------------------------------------------------------------
1.将附件中的SmartCtrl【留言邮箱获取】 解压后整个拖入Assets文件夹(拖入即自动拷贝,你也可以手动拷贝到此目录)
2.代码中传入端口号,由于平台特性,原有自动查找功能失效,需要在代码中传入。
即 RSBusCtrl RSBusCtrl = new RSBusCtrl("COM9");
这里的COM口,可以在设备管理中查看,当然前提是你的“总线转换器”已经插入才能找到。
(友情提示)为了项目的部署方便,你应该使用一个配置文件或者自动程序来查找这个串口号。
解决了上述两个问题,即可正常使用了。
下面贴出一个简单的示例脚本,已经经过测试:
- 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()
- {
-
- }
- }
-
* 文章为作者独立观点,不代表数艺网立场转载须知
- 本文由 意想意创_费工 授权 数艺网 发表,并经数艺网编辑。转载此文章请在文章开头和结尾标注“作者”、“来源:数艺网” 并附上本页链接: 本站部分文字及图片来源于网络,如侵犯到您的权益,请及时告知,我们将及时处理或删除。