Unity Android SDK

UDE SDK 1.0.0

适用于Unity 2021.3及以上的Android平台版本。

1.0.0

发版日期:

SDK 总览

SDK用于Udexreal动捕手套以蓝牙传输/2.4G传输的模式,接入Unity开发的安卓应用中,可用于智能手机,VR设备等。

circle-exclamation

SDK 功能简介

  • 蓝牙初始化

  • 2.4G初始化

  • 开始搜索UDE蓝牙设备

  • 终止搜索UDE蓝牙设备

  • 搜索UDE2.4G设备

  • 获取当前搜索到的UDE蓝牙设备列表

  • 获取当前搜索到的UDE2.4G设备列表

  • 连接指定UDE蓝牙设备

  • 连接指定UDE2.4G设备

  • 检测指定UDE设备是否已连接(蓝牙)

  • 检测指定UDE设备是否已连接(2.4G)

  • 与指定UDE设备断开连接(蓝牙)

  • 与指定UDE设备断开连接(2.4G)

  • 获取UDE设备当前电量(蓝牙)

  • UDE设备数据读取(蓝牙)

  • UDE设备数据读取(2.4G)

  • 控制标定动作开始与结束

  • 获取当前标定阶段

  • 获取所有指关节变化角度

  • 获取标定表现值

  • 获取蓝牙传输帧率

  • 获取指关节轴向配置

  • 设置指关节轴向配置

  • 获取大拇指根节点限制参数

  • 设置大拇指根节点限制参数

  • 获取大拇指根节点偏移值

  • 设置大拇指根节点偏移值

  • 获取外接设备数据

  • 摇杆位置归零标定

  • 摇杆范围标定控制

  • 获取摇杆死区数值

  • 设置摇杆死区数值

  • 获取Trigger触发数值

  • 设置Trigger触发数值

  • 获取Grip触发数值

  • 设置Grip触发数值

  • 获取Trackpad触发数值

  • 设置Trackpad触发数值

  • 控制震动反馈

UDE SDK 快速入门概览

将Unitypackage拖入Unity工程,点击import导入所有文件。

在CoreScripts中可以看到UDE_SDK.cs,该脚本中集成了SDK的所有方法,在脚本中引入

即可调用方法API。

前置条件

Unity需要切换成安卓平台,项目设置中的player->Configuration->Api CompatibilityLevel 需要设置为.NET Framework。

SDK 功能方法接口详解

使用步骤

导入SDK后,在Sample文件夹下的SampleScene中可以找到一个应用实例。以下是常规使用SDK的方法流程。

BLE SDK(蓝牙)

  1. 在主要管理/控制类脚本中创建SDK静态实例。

  1. 在Unity Monobehaviour 的初始方法流程中先调用蓝牙初始化方法。

  1. 随后与蓝牙相关的方法均可调用,需要先开始搜索设备的方法,然后取得设备名称列表,根据设备名调用方法进行连接等操作。

  1. 获取手套数据需要按照顺序完成所有标定动作,数据更新方法需要在Mono的Update中,或协程内持续执行。

2.4G SDK(2.4G接收器)

  1. 在主要管理/控制类脚本中创建SDK静态实例。

  1. 在Unity Monobehaviour 的初始方法流程中先调用2.4G初始化方法。

  1. 随后与2.4G相关的方法均可调用,需要先搜索设备,然后取得设备名称列表,根据设备名调用方法进行连接等操作。

  1. 获取手套数据需要按照顺序完成所有标定动作,数据更新方法需要在Mono的Update中,或协程内持续执行。

API 参考

UDE_SDK

UDE SDK的类名。

void UDE_BleInit()

接口功能蓝牙连接初始化,在调用SDK任何api前都需要执行此方法。

void UDE_24GInit()

接口功能2.4G连接初始化,在调用SDK任何api前都需要执行此方法。

bool UDE_BleStartSearching()

接口功能开始搜索可连接的UDE设备。返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

Bool

true

是否成功开始搜索

bool UDE_BleStopSearching()

接口功能终止搜索可连接的UDE设备。返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

是否成功终止搜索

bool UDE_24GSeraching()

接口功能搜索可连接的UDE设备(2.4G)。返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

是否成功搜索

List<string> UDE_GetBleDeviceList()

接口功能获取所有搜索到的UDE设备名称。返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

List<string>

{"UDST00001L", "UDST00001R"}

设备名以string类型的列表返回。

List<UDE_Serial> UDE_Get24GDevice()

接口功能获取所有搜索到的UDE设备(2.4G)。返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

List<UDE_Serial>

设备名以UDE_Serial类型的列表返回。

bool UDE_ConnectCertainDevice(string DeviceName, Action<string, bool> action = null)

接口功能根据设备名连接指定设备。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

action

Action<string, bool>

需要连接状态监听回调时传输该参数

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

是否成功连接设备。

bool UDE_24GConnectCertainDevice(string DeviceName, int serial_num)

接口功能根据设备名和序列号连接指定设备(2.4G)。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

serial_num

int

0

设备序列号(UDE_Serial获取)

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

是否成功连接设备。

bool UDE_CheckDeviceIsConnect(string DeviceName)

接口功能根据设备名获取指定设备连接状态。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否连接。

bool UDE_24GCheckDeviceIsConnect(int serial_num)

接口功能根据设备序列号获取指定设备连接状态(2.4G)。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

serial_num

int

0

设备序列号

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否连接。

bool UDE_DisconnectDevice(string DeviceName)

接口功能根据设备名与指定设备断开连接。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否完成断开连接。

bool UDE_24GDisconnectDevice(int serial_num)

接口功能根据设备序列号与指定设备断开连接(2.4G)。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

serial_num

int

0

设备序列号

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否完成断开连接。

int UDE_GetDeviceBatteryLevel(string DeviceName)

接口功能根据设备名获取当前电量状态。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

int

1

电量等级为1-5,对应当前剩余电量递增,当返回0时为获取失败。

bool UDE_RunningDataUpdate(string DeviceName)

接口功能根据设备名让指定设备进行数据传输更新。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否正常更新数据

bool UDE_24GRunningDataUpdate(string DeviceName,int serial_num)

接口功能根据设备名和设备序列号让指定设备进行数据传输更新(2.4G)。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

serial_num

int

0

设备序列号

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否正常更新数据

bool UDE_CalibrationMotionController(string DeviceName, CalibrationType calibrationType, bool IsStart)

接口功能根据设备名控制指定设备的标定动作开始与结束。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

CalibrationType

Enum

CalibrationType.Fist

此方法可选的枚举类型为Fist,Adduct,Stretch

IsStart

bool

true

为true则标定开始,为false则方法结束

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设备是否成功切换标定状态

CalibrationType UDE_GetCalibrationType(string DeviceName)

接口功能根据设备名获取指定设备的标定状态。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

Enum

CalibrationType.Completed

取得当前标定阶段

double[] UDE_GetCalibrationInfoOffset(string DeviceName)

接口功能根据设备名获取指定设备的标定表现差值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

double[]

{1050, 700, 350...}

共有十五位,对应传感器。在标准范围内数字越大则说明标定效果越好。

int UDE_GetDeviceTransferFPS(string DeviceName)

接口功能根据设备名获取指定设备的蓝牙数据传输帧率。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

int

100

获取设备接收到蓝牙数据的即时帧数。

Dictionary<FingerJointType, Vector3> UDE_GetFingerRotations(string DeviceName)

接口功能根据设备名获取指定设备的手指关节变化数据。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

Dictionary<FingerJointType, Vector3>

{{FingerJointType.Thumb1, {0,0,0}}}

根据FingerJointType枚举类型给出每个手指关节的变化欧拉角

Axis[] UDE_GetThreeAxis(string DeviceName)

接口功能根据设备名获取指定设备的指关节轴向配置。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

Axis[]

{Axis.x, Axis.y, Axis.z}

给出俯仰角,旋转角,偏航角对应的实际轴向(x, y, z, -x, -y, -z)

bool UDE_SetThreeAxis(string DeviceName,Axis[] axes)

接口功能根据设备名设置指定设备的指关节轴向配置。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

axes

Axis[]

{Axis.x, Axis.y, Axis.z}

设置三种旋转角的坐标轴向配置

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

float UDE_GetThumbCoefficient(string DeviceName)

接口功能根据设备名获取指定设备的拇指根关节限制值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

float

0.6

获取限制倍率值

bool UDE_SetThumbCoefficient(string DeviceName, float value)

接口功能根据设备名获取指定设备的拇指根关节限制值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

value

float

0.8

限制倍率值,范围需要在0-1之间

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

Vector3 UDE_GetThumbFirstJointOffset(string DeviceName)

接口功能根据设备名获取指定设备的拇指根关节偏移值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

Vector3

{0,0,0}

根关节在各轴向上的偏移值

bool UDE_SetThumbFirstJointOffset(string DeviceName, Vector3 value)

接口功能根据设备名设置指定设备的拇指根关节偏移值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

value

Vector3

{0,0,0}

偏移值欧拉角

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

InputData UDE_GetInputDeviceData(string DeviceName)

接口功能根据设备名获取指定设备的外接设备输入(摇杆及按钮数据)。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

InputData

额外数据的结构体

bool UDE_JoystickCenterCalibration(string DeviceName)

接口功能根据设备名获取指定设备,进行该设备的摇杆位置归零标定。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

标定指令是否成功接收

bool UDE_JoystickRangeCalibration(string DeviceName, bool IsStart)

接口功能根据设备名获取指定设备,控制该设备的摇杆位置范围标定的开始与结束。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

IsStart

bool

true

true为标定开始,false为标定结束

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

标定指令是否成功接收

float UDE_GetJoystickDeadZone(string DeviceName)

接口功能根据设备名获取指定设备,获取该设备的摇杆死区范围数值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

float

0.15

死区范围数值为0-1,对应0% - 100%

bool UDE_SetJoystickDeadZone(string DeviceName, float value)

接口功能根据设备名获取指定设备,设置该设备的摇杆死区范围数值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

value

float

0.1

死区限制比率参数,范围是0-1

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

float UDE_GetTriggerActiveValue(string DeviceName)

接口功能根据设备名获取指定设备模拟Trigger按键的触发值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

float

0

获取有误时返回数据为-1,正常情况为0-1的数值

bool UDE_SetTriggerActiveValue(string DeviceName, float value)

接口功能根据设备名设定指定设备模拟Trigger按键的触发值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

value

float

0.1

模拟Trigger按键所需的触发值比率,范围为0-1

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

float UDE_GetGripActiveValue(string DeviceName)

接口功能根据设备名获取指定设备模拟Grip按键的触发值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

float

0.1

获取有误时返回数据为-1,正常情况为0-1的数值

bool UDE_SetGripActiveValue(string DeviceName, float value)

接口功能根据设备名设定指定设备模拟Grip按键的触发值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

value

float

0.1

模拟Grip按键所需的触发值比率,范围为0-1

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

float UDE_GetTrackpadActiveValue(string DeviceName)

接口功能根据设备名获取指定设备模拟Trackpad按键的触发值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

float

0.1

获取有误时返回数据为-1,正常情况为0-1的数值

bool UDE_SetTrackpadActiveValue(string DeviceName, float value)

接口功能根据设备名设定指定设备模拟Trackpad按键的触发值。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

value

float

0.1

模拟Trackpad按键所需的触发值比率,范围为0-1

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

设置是否成功

bool UDE_ControlVibration(string DeviceName, int PlaceIndex, int SustainedTenMillionsecond = 4, int Strength = 1)

接口功能根据设备名控制指定设备的震动反馈。参数说明该接口的参数说明如下:

参数名称

类型

是否必选

示例值

说明

DeviceName

string

"UDST00001L"

设备名称

PlaceIndex

int

1

设备上仅有两处震动反馈模块,对应值为1,2

SustainedTenMillionsecond

int

4

震动时长,4为最小默认值,表示40ms

Strength

int

1

震动等级,1为最小默认值,最高震级为7

返回值该接口的返回值说明如下:

参数名称

类型

示例值

说明

自定义

bool

true

震动反馈触发指令是否成功发送

枚举

enum CalibrationType

标定动作与状态

该枚举的枚举值说明如下:

枚举值

数值

说明

AdductFin

-2

并拢动作(动作B)完成

FistFin

-1

握拳动作(动作A)完成

None

0

未开始标定

Fist

1

握拳动作(动作A)

Adduct

2

并拢动作(动作B)

Stretch

3

伸展动作(动作C)

Completed

4

标定已完成

enum FingerJointType

手指关节

该枚举的枚举值说明如下:

枚举值

数值

说明

Thumb1

0

拇指第一关节

Thumb2

1

拇指第二关节

Thumb3

2

拇指第三关节

Index1

3

食指第一关节

Index2

4

食指第二关节

Index3

5

食指第三关节

Middle1

6

中指第一关节

Middle2

7

中指第二关节

Middle3

8

中指第三关节

Ring1

9

无名指第一关节

Ring2

10

无名指第二关节

Ring3

11

无名指第三关节

Pinky1

12

小指第一关节

Pinky2

13

小指第二关节

Pinky3

14

小指第三关节

enum Axis

轴向配置

该枚举的枚举值说明如下:

枚举值

数值

说明

x

-3

X轴正方向

y

-2

Y轴正方向

z

-1

Z轴正方向

x_n

0

X轴逆方向

y_n

1

Y轴逆方向

z_n

2

Z轴逆方向

结构体

struct InputData

外接设备(按键,摇杆)的数据与触发信息

该结构体的参数说明如下:

参数

类型

说明

joyX

float

摇杆X轴数值,范围为[-1,1]

joyY

float

摇杆Y轴数值,范围为[-1,1]

joyButton

bool

摇杆按键是否按下

trgButton

bool

模拟摇杆按键是否按下

aButton

bool

A按键是否按下

bButton

bool

B按键是否按下

grab

bool

模拟Grab按键是否按下

menu

bool

模拟Menu按键(AB按键同时)是否按下

trackpad_touch

bool

模拟Trackpad按键是否按下

trgValue

float

模拟Trigger的触发值,范围为[0, 1]

Last updated