快速入门:HardwareAPI Unity 软件包
本文提供了基本设置说明和一个演示基本用法的简单示例。有关 详细信息和高级用法,请参阅 Unity 软件包参考或 教程。
版本支持
- Unity 2020.3.x LTS:推荐使用
- Unity 2021.3.x LTS:支持
- Unity 2022.x(技术流):实验性
软件包概述
Haply HardwareAPIUnity 软件包建立在 Haply 的 C# HardwareAPI 类库之上,并为 Unity 量身定做了额外的集成和高质量的生活功能。 类库的基础上,提供了额外的集成和生活质量功能,专为 Unity 工作流程量身定制的附加集成和生活质量功能。
触觉线程和手柄线程组件在线程安全的异步通信循环中处理与各自设备的通信。 在线程安全的异步通信循环中处理与各自设备的通信。此外,Haptic Thread还为控制 Inverse3. 控制 Inverse3 的几种方法。该软件包还能自动在 Unity 的坐标系和 Inverse3 的坐标系之间进行自动转换。
注该软件包正在持续开发中,以进一步简化 Inverse3 的开发。 如果您有任何问题或要求,请联系我们。
安装 Haply 硬件应用程序接口软件包
HardwareAPI Unity 软件包通过 范围注册表 功能分发。本节将介绍定义自定义 注册表并将 HardwareAPI 软件包添加到新项目中所需的步骤。
-
打开项目后,在 Unity 工具栏中导航至编辑 > 项目设置 > 软件包管理器,然后在软件包管理器窗口中的范围注册表部分按下加号。 工具栏中的 "编辑 > 项目设置 >软件包管理器",然后在 "软件包管理器"窗口的 "作用域注册表"部分按下加 按钮并添加以下内容:
- 名称:
Haply Robotics
- URL:
https://unitypackages.haply.co
- 范围
co.haply
您也可以直接编辑 项目清单文件。
有关 Unity Scoped Registry 的更多信息,请访问 docs.unity3d.com - 名称:
-
使用 Unity 工具栏导航至窗口 > 软件包管理器
-
单击状态栏中的添加 + 按钮,选择按名称添加软件包。
-
进入
co.haply.hardwareapi
作为 名称 并点击 添加.
如果成功,软件包管理器应显示以下信息。
开始
控制逆 3
-
在场景下创建一个空的游戏对象,将其命名为 "触觉线程",然后在检查器中添加 "触觉 线程组件。
-
在 "触觉线程"中,使用 "设备地址 "下拉菜单选择与其铭牌上名称相匹配的 Inverse3 设备。 上的名称。
-
在场景中添加一个球体,将其命名为光标,并在 触觉线程中的 EE 头像。现在进入 "播放模式 "后,球体将随着 Inverse3 的光标移动。 Inverse3 的光标移动,同时位置和速度将在检查器窗口中不断更新。
-
用以下代码创建一个新的 C# 脚本,然后将其附加到与 触觉线程:
using Haply.HardwareAPI.Unity;
using UnityEngine;
public class HapticController : MonoBehaviour
{
[Range(-2, 2)]
public float forceX;
[Range(-2, 2)]
public float forceY;
[Range(-2, 2)]
public float forceZ;
private void Awake()
{
var hapticThread = GetComponent<HapticThread>();
hapticThread.onInitialized.AddListener(() => hapticThread.Run(ForceCalculation));
}
private Vector3 ForceCalculation(in Vector3 position)
{
return new Vector3(forceX, forceY, forceZ);
}
}- "(《世界人权宣言》)
Awake
方法获取 触觉线程 并在另一个线程中开始触觉计算。 线程中开始触觉计算。然后在onInitialized
事件,调用该事件时将调用 运行方法,并将ForceCalculation
方法作为委托参数。 ForceCalculation
获取检查器窗口中提供的力矢量,并将其发送到 反向3。
- "(《世界人权宣言》)
-
进入播放模式后,触觉线程将在检测器窗口中不断更新设备的速度和位置。 位置。探索设备工作区,并尝试使用滑块控制力输出。 输出。
警告: 改变力时,Inverse3 将移动,因此务必清除工作区内的贵重物品,并按住光标不放。 贵重物品并按住光标。有关详细信息,请参阅安全使用文章。
HapticThread组件可以使用滑块控制触觉线程的刷新率。为获得最佳 效果,请使用 1KHz 或更高的刷新率。
HapticThread提供的位置是通过设备上的位置传感器直接测量的。 设备上的位置传感器直接测量。而速度则是通过速度估算算法计算得出的,从而提供无需过滤的信号。 提供无需过滤的信号。HapticThread还能提供以下信息 设备的电源状态、基座方向和其他状态。
使用把手
-
在场景下创建一个空的游戏对象,将其命名为 "Handle Thread",然后在检查器中添加Handle 线程组件。
-
在检查器中,使用设备地址下拉菜单选择与其标签上的名称相匹配的处理设备。 标签上的名称相匹配的处理设备
-
添加一个立方体作为光标的子立方体,并设置以下变换值:
- 职位 :
0, 0, -1
- 旋转 :
0, 0, 0
- 规模 :
0.5, 0.5, 2
- 职位 :
-
将光标附加到句柄线程的 "头像"属性上
-
进入播放模式后,手柄线程将不断更新检查器窗口中的设备方向。 检查器窗口中的设备方向,因此移动手柄将旋转光标。
这样做将根据手柄方向更新光标的旋转,而位置将通过 反向3效果器移动来更新位置。