Unity3D中关于HTCVIVE开发时 SteamVR_LaserPointer产生的射线暂时关闭和开启

unity开发VR中,steamVR的脚本很方便,SteamVR_LaserPointer放在CameraRig下controller上,就是实现在HTC VIVI手柄上发射射线,当然还要加上SteamVR_TrackedController这个组件。

但是射线开启之后,尝试了取消这个脚本也没实现关闭射线。然后就开始看这个脚本,找到改的方法了。具体如下:

加上一个控制手柄的脚本,在控制手柄的按键脚本里加上

  if(laserOpenCount==0)
        {
            GetComponent<SteamVR_LaserPointer>().enabled = true;    //射线开启
            laserOpenCount = 1;
        }
 else
        {
            GetComponent<SteamVR_LaserPointer>().enabled =false;    //射线关闭
            laserOpenCount = 0;
            GetComponent<SteamVR_LaserPointer>().pointer.transform.localScale = new 
            Vector3(0, 0, 0);
        }

laserOpenCount是一个计数器,判断是按下是开还是关。这里主要是为了改SteamVR_LaserPointer脚本里的localScale,这个值是关于射线的厚度和长度。先把脚本关闭,再把射线localScale即可关闭,然后再开启射线,则SteamVR_LaserPointer里面的update函数,会把 new Vector3(0, 0, 0) 覆盖掉,这样就能实现功能。

 

版权声明:本文为博主原创文章,未经博主允许不得转载

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值