UnitySDK说明

SDK的初始化

在使用Orbbec Pose Unity SDK之前需要先初始化骨架算法以及数据流读取SDK,在Unity中初始化的方法很简单,只需要在GameObject上挂载PoseManager和StreamManager,并在编辑器中设置一下PoseManager的License就可以了

注意:由于需要加载算法模型,第一次初始化的时间会比较长

SDK的使用

判断初始化是否成功

//判断算法SDK是否初始化成功
PoseManager.HasInitialized();

骨架识别开关

//设置骨架识别开关
PoseManager.EnableBody(true);
//判断骨架识别是否打开
PoseManager.IsBodyEnable();

获取骨架数据

//获取深度骨架数据
PoseManager.GetDepthBodyList()
//获取彩色骨架数据
PoseManager.GetColorBodyList()

此外,还可以通过回调方式获取骨架数据

//监听回调事件
PoseManager.onBodyFrame += OnBodyFrame()
//处理回调帧,获取骨架数据
void OnBodyFrame(Frame bodyFrame)
{
    bodyFrame.GetColorBodyList();
    bodyFrame.GetDepthBodyList();
}

获取骨架点坐标

bodyList = PoseManager.GetDepthBodyList();
if (bodyList.bodyNum > 0)
{
    //遍历bodyList获取每个body
    for (int i = 0; i < bodyList.bodyNum; i++)
    {
        var joints = bodyList.body[i].joints;
        //遍历joints获取每个关节点的坐标
        for (int i = 0; i < joints.Length; ++i)
        {
            var jointPos = joints[i].position;
        }
    }
}