最新国产在线视频_一色一伦一区二区三区的区别_欧美成人影院亚洲综合图_国产亚洲一区精品_大胆欧美熟妇xxbbwwbw高潮了_久久午夜无码鲁丝片

  • UNITY3D 與 HTC VIVE 數(shù)據(jù)手套VR應(yīng)用開(kāi)發(fā)

    2017/11/22??????點(diǎn)擊:

    目前很多VR客使用UNIYT3D做VR應(yīng)用開(kāi)發(fā)時(shí),*新的SteamVR1.2.1在Unity5.4.4下狂報(bào)錯(cuò),這是因?yàn)関ive的sdk SteamVR在升級(jí),會(huì)有些改動(dòng)。

    下面的內(nèi)容是在以下環(huán)境完成的 unity5.6.2f1

    1、導(dǎo)入SDK:SteamVR Plugin和Vive Input Utility

    2、將CamerRag拖入場(chǎng)景

    3、添加拾取對(duì)象

    添加一個(gè)3d對(duì)象,并添加腳本BasicGrabbables即可,則物體可以被拾取。物體要被拾取,還需要添加剛體組件

    4、添加觸碰對(duì)象

    添加一個(gè)3d對(duì)象,默認(rèn)即可觸碰

    5、添加接觸效果

    在3d物體上添加腳本MaterialChanger,設(shè)置其參數(shù)

    Normal:默認(rèn)貼圖

    Heightlight:觸碰后的貼圖

    Pressed:按下按鈕時(shí)的貼圖

    Heighlight Button:指定按鈕,默認(rèn)是Trigger

    6、運(yùn)行

    觸碰拾取對(duì)象時(shí),顯示綠,

    按下按鍵后,變紅,可以移動(dòng)旋轉(zhuǎn)物體

    觸碰對(duì)象可以觸碰,按下按鍵變紅,但無(wú)法移動(dòng)和轉(zhuǎn)動(dòng)

    7、事件響應(yīng)

    vive支持以下事件

    • IColliderEventHoverEnterHandler
    • IColliderEventHoverExitHandler
    • IColliderEventPressDownHandler
    • IColliderEventPressUpHandler
    • IColliderEventPressEnterHandler
    • IColliderEventPressExitHandler
    • IColliderEventClickHandler
    • IColliderEventDragStartHandler
    • IColliderEventDragUpdateHandler
    • IColliderEventDragEndHandler
    • IColliderEventDropHandler
    • IColliderEventAxisChangedHandler
    使用方法,新建腳本如下,并把腳本添加到游戲?qū)ο螅纯伞?
    1. using System.Collections;  
    2. using System.Collections.Generic;  
    3. using UnityEngine;  
    4. using HTC.UnityPlugin.ColliderEvent; 
    5. public class viveLearn : MonoBehaviour,IColliderEventHoverEnterHandler {  
    6.  public void OnColliderEventHoverEnter(ColliderHoverEventData eventData){  
    7.  Debug.Log ("hover");  
    8.  }  
    9. }  

    如何把數(shù)據(jù)手套集成到VIVE開(kāi)發(fā)應(yīng)用里?

    1.首先建立一個(gè)UNITY3D工程, 導(dǎo)入HTC VIVE開(kāi)發(fā)包

    2.導(dǎo)入WONGLOVE數(shù)據(jù)手套的U3D開(kāi)發(fā)包

    在U3D的資源列表里可以看到項(xiàng)目里有WONGLOVE_RIGHTARM.CS腳本和WONGLOVE數(shù)據(jù)手套的調(diào)用插件程序。

    3. 把WONGLOVE的調(diào)用腳本拖到場(chǎng)景內(nèi)的主相機(jī)/ 或者其他物體上,并選擇好數(shù)據(jù)手套端口號(hào)(可以在控制面板->設(shè)備管理器)。

    4. OK, 現(xiàn)在已經(jīng)建立好了UNITY3D+VIVE環(huán)境下數(shù)據(jù)手套的功能配置。

    6. 數(shù)據(jù)手套的主要源碼片段

    //初始化數(shù)據(jù)手套

    void Start () {
    ret_angle=new float[19];

    armsensor = new float[12];   //帶有手臂跟蹤功能擴(kuò)展的數(shù)據(jù)手套專用
    feedback = new byte[5];      //帶有力反饋功能能擴(kuò)展的數(shù)據(jù)手套專用
    openstate = wgInitManu(port);  //打開(kāi)數(shù)據(jù)手套端口,并對(duì)手套標(biāo)定變量初始化
    Debug.Log("open state:"+ openstate.ToString());

    }

    //這里是刷新程序片段
    void Update () {

    if (openstate == 1) {
        wgGetAngle (ret_angle); //讀取數(shù)據(jù)手套的角度值
        wgGetQuat (armsensor); //讀取數(shù)據(jù)手套的手臂跟蹤傳感器值
    }

    //模型手臂旋轉(zhuǎn)
    model_uparm_right.rotation   = &armsensor[0];
    model_forearm_right.rotation =  &armsensor[4];
    model_hand_right.rotation     =  &armsensor[8];
    //模型手關(guān)節(jié)旋轉(zhuǎn),以大拇指關(guān)節(jié)為例
    Thumb_R.rotation = Quaternion.Euler (0,-ret_angle [0] ,0) ;
    Thumb_R1.rotation= Quaternion.Euler(0,-ret_angle [1] ,0) ;
    Thumb_R2.rotation= Quaternion.Euler(0,-ret_angle [2] ,0) ;
    ....此處省略其他手指的設(shè)置

    //數(shù)據(jù)手套的力反饋測(cè)試設(shè)置
    if (Input.GetKey (KeyCode.Alpha1)) {
    feedback [0] = 16; feedback [1] = 0;feedback [2] = 0;feedback [3] = 0;feedback [4] = 0;
    wgSetFeedBack(feedback);
    }
    if (Input.GetKey (KeyCode.P)) {
    feedback [0] = 0; feedback [1] = 0;feedback [2] = 0;feedback [3] = 0;feedback [4] = 0;
    wgSetFeedBack (feedback);
    }

    //按下R鍵,開(kāi)始標(biāo)定
    if (Input.GetKey (KeyCode.R)) {
        wgResetHand();  //標(biāo)定數(shù)據(jù)手套的手指?jìng)鞲衅?br />     wgResetArm();  //標(biāo)定數(shù)據(jù)手套的手臂跟蹤傳感器
    }
    if (Input.GetKey (KeyCode.Q)) {
    Application.Quit(); //禁止自動(dòng)標(biāo)定    //0 - 自動(dòng)標(biāo)定
    }
    }
    void OnDestroy () {
    if (openstate == 1) {
    wgClose ();//程序退出時(shí),關(guān)閉數(shù)據(jù)手套調(diào)用資源,并釋放所有申請(qǐng)的內(nèi)存資源
    openstate =0;
    Debug.Log ("Glove is closed!");
    }
    else 
    Debug.Log ("Glove is NOT closed!");
    }
    //數(shù)據(jù)手套的手勢(shì)定義實(shí)現(xiàn)過(guò)程
    //獲取WONGLOVE數(shù)據(jù)手套當(dāng)前的手勢(shì),例如:0x1f-石頭 0x17-剪子, 0x00-布, 0x1c-OK
    int CheckGloveStatus()
    {
    int gesture = 0; //0x1f;  // b1 1111
    //大拇指第0位,...小指第4位
    if (ret_angle [0] > 150 / 2)
    gesture += 0x01;  // 
    if (ret_angle [1] > 270 / 2)
    gesture += 0x02;  // 
    if (ret_angle [2] > 270 / 2)
    gesture += 0x04;  // 
    if (ret_angle [3] > 270 / 2)
    gesture += 0x08;  // 
    if (ret_angle [4] > 270 / 2)
    gesture += 0x10;  // 
    return gesture;
    }

    }

    7. 本U3D工程源

    如需要本U3D工程源碼,請(qǐng)聯(lián)系我們。




    主站蜘蛛池模板: 亚洲第一网站男人都知道 | 久久久久影院美女国产主播 | 久久久精品理论A级A片 | 欧美疯狂xxxxbbbb动态图 | 一区二区精品视频日本 | 国产一区二区三区国产精品 | 亚洲熟女乱色综合亚洲av | 日日大香人伊一本线久 | 丁香五月缴情在线 | 久久国内精品自在自线400部 | 色婷婷五月综合久久 | 色又黄又爽18禁免费网站现观看 | 亚洲一区二区三区国产精品无码 | 亚洲AV成人无码网站天堂网久久 | 高清精品自拍亚洲 | 亚洲国产日韩a综合在线 | 美女裸体无遮挡永久免费网站 | 免费国产黄网站在线观看视频 | 国产精品久久久久久无码五月 | 九九九九九 | 人成久久 | 成人公开免费视频 | 中国chinese老熟女 | 欧美激情肉欲高潮视频 | a毛片成人免费全部播放 | 在线观看肉片AV网站免费 | 青青操网站| 18av千部免费影片与您 | 国产亚洲成av人片在线观看 | 香蕉免费一区二区三区在 | 日本永久免费 | av无码国产精品色午夜 | 国产成人精品A视频免费福利 | www在线观看 | 中文字幕永久视频在线看 | 欧美群妇大交群的观看方式 | 91久久香蕉囯产熟女线看 | 成人性生交A片免费网 | 人人妻人人澡人人爽精品欧美 | 无码AV人片在线观看天堂 | 女女同性一区二区三区免费观看 |