• 您的位置:首页 > 新闻动态 > 技术文章

    WiseGlove数据手套 for Unity3D插件免费为用户提供

    2015/11/10      点击:

    为方便Unity平台的客户使用我公司的WonGlove数据手套,公司针为WonGlove数据手套编写了适合Unity3D虚拟现实开发平台设备Get WonGlove插件。使用该插件,用户可以很方便地在Unity平台里使用WonGlove和WiseXMA位置跟踪器,不会再为数据手套不能在Unity环境使用感到困惑。


    wiseglove, wisexma unity3d动作捕捉绑定


    在Unity3D环境下同时使用WiseGlove数据手套和WiseXMA跟踪器



    WonGlove数据手套的调用方法:

    1.设置系统环境变量,添加warpWonGlove.dll和WonGlove.dll所在目录的路径,重新启动Unity3D

    2.在Unity的脚本中,添加using WonGlove;

    [DllImport("WonGloveU3D",EntryPoint = "wgInit")]

    private static extern int wgInit();

    [DllImport("WonGloveU3D",EntryPoint = "wgClose")]

    private static extern int wgClose();

    [DllImport("WonGloveU3D",EntryPoint = "wgGetData")]

    extern static void wgGetData([MarshalAs(UnmanagedType.LPArray,SizeParamIndex=1)]int[] retData);

    [DllImport("WonGloveU3D",EntryPoint = "wgGetAngle")]

    extern static void wgGetAngle([MarshalAs(UnmanagedType.LPArray,SizeParamIndex=1)]float[] retAngle);

    3.以下为数据手套初始化
    void Start () {

    int num;

    num=wgInit();

    Debug.Log(num.ToString());

    }

    4.以下调用读取手套传感器值或者角度

    void Update () {

    //此处是读取传感器角度的过程

    float[] ret_angle;
    ret_angle=new float[5];//为WiseGlove5传感器手套申请数组,长度5
    wgGetAngle(ret_angle);
    Debug.Log("Angle:"+ret_angle[0].ToString()+"==="+ret_angle[1].ToString()+"==="+ret_angle[2].ToString()+"==="+ret_angle[3].ToString()+"==="+ret_angle[4].ToString());

    //界面显示角度值
    guiText.text=("Angle:"+ret_angle[0].ToString()+"==="+ret_angle[1].ToString()+"==="+ret_angle[2].ToString()+"==="+ret_angle[3].ToString()+"==="+ret_angle[4].ToString());

    /* //此处是读取传感器值的过程
    GetComponent().text="WiseGlove SDK example for Unity3D";
    int[] ret_data;
    ret_data=new int[5]; //为WiseGlove5传感器手套申请数组,长度5
    wgGetData(ret_data);

    //调试窗口输出传感器值
    Debug.Log("Data:"+ret_data[0].ToString()+"==="+ret_data[1].ToString()+"==="+ret_data[2].ToString()+"==="+ret_data[3].ToString()+"==="+ret_data[4].ToString());
    */
    }

    5.以下关闭数据手套调用

    void OnDestroy () {

    wgClose();
    Debug.Log("Script was destroyed");
    }