Oculus Quest手柄按钮事件和发射射线

   日期:2020-05-09     浏览:313    评论:0    
核心提示:废话不说 直接上代码下面是Oculus quest右手手柄的按钮代码if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickUp)) { hand_info.text = 手柄状态:摇杆上; } if (OVRInput.Get...

废话不说  直接上代码

 

 

下面是Oculus quest右手手柄的按钮代码

if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickUp))

        {

            hand_info.text = "手柄状态:摇杆上";

        

        }

        if (OVRInput.GetDown(OVRInput.RawButton.RThumbstickDown))

        {

            hand_info.text = "手柄状态:摇杆下";

        

        }

        if (OVRInput.Get(OVRInput.RawButton.RThumbstickLeft))

        {

            hand_info.text = "手柄状态:摇杆左";

        }

        if (OVRInput.Get(OVRInput.RawButton.RThumbstickRight))

        {

            hand_info.text = "手柄状态:摇杆右";

        }

        if (OVRInput.GetDown(OVRInput.RawButton.RIndexTrigger))

        {

            hand_info.text = "手柄状态:扳机键";

        }

        if (OVRInput.GetUp(OVRInput.RawButton.RIndexTrigger))

        {

            hand_info.text = "手柄状态:扳机键松开";

        }

        if (OVRInput.GetDown(OVRInput.RawButton.RHandTrigger))

        {

            hand_info.text = "手柄状态:侧边按键按下";

        }

        if (OVRInput.GetUp(OVRInput.RawButton.RHandTrigger))

        {

            hand_info.text = "手柄状态:侧边按键松开";

        }

        if (OVRInput.GetDown(OVRInput.Button.One))

        {

            hand_info.text = "手柄状态:按键A";

        }

        if (OVRInput.GetDown(OVRInput.Button.Two))

        {

            hand_info.text = "手柄状态:按键B";

        }

 

Oculus quest手柄发射射线:

Ray ray = new Ray(Finger.transform.position, Finger.transform.forward);

 

        Linerenerer.SetPosition(0, ray.origin);

 

        if (Physics.Raycast(ray, out hit))//检测到物体

        {

 

            Linerenerer.SetPosition(1, hit.point);

       }

 

 

射线检测功能可以直接用Ray ray = new Ray(起始点, 起始点的正方向),;这里注意的是Linerenerer的可见射线的起点方向要和 Ray射线的起点/方向一致:

Linerenerer射线起点:

Linerenerer.SetPosition(0, ray.origin);(ray.origin为Linerenerer射线的起点,也是ray射线的起点 )

Linerenerer射线终点:

Linerenerer.SetPosition(1, hit.point);(hit.point为ray射线检测到物体发生碰撞的点,也是Linerenerer射线的终点)

 

总的来说就是同一个点发射两条射线:一条射线Ray看不到,作用是进行射线检测,另一条射线看得到,作用是在VR场景中给体验者看到一条光线

Linerenerer组件挂物体上:

 
打赏
 本文转载自:网络 
所有权利归属于原作者,如文章来源标示错误或侵犯了您的权利请联系微信13520258486
更多>最近资讯中心
更多>最新资讯中心
0相关评论

推荐图文
推荐资讯中心
点击排行
最新信息
新手指南
采购商服务
供应商服务
交易安全
关注我们
手机网站:
新浪微博:
微信关注:

13520258486

周一至周五 9:00-18:00
(其他时间联系在线客服)

24小时在线客服