新增:VRTK丨代码集合

基础配置

基础配置

 

1、手柄按键事件获取

注意:获取事件不要用 SteamVR_TrackedObject  脚本。因为有的博客讲:将该脚本放在右手上,写另外的脚本通过它获得按键事件。但这个脚本有个Bug,它会导致射线偏移、不在正确位置。

正确做法:

    //赋值右手
    public VRTK_ControllerEvents e;

    private void Start()
    {
        e.GripPressed += DoGripPressed;//抓取

        e.TouchpadAxisChanged += DoTouchpadAxisChanged;//touchpad事件
    }

    void DoGripPressed(object sender, ControllerInteractionEventArgs e)
    {

        print("按下了Trigger");
    }

    void DoTouchpadAxisChanged(object sender, ControllerInteractionEventArgs e)
    {
        //Debug.LogError(e.touchpadAngle);//获取touchpad角度值

        float jiaodu = e.touchpadAngle;
        //上  
        if (jiaodu < 45 && jiaodu > 0 || jiaodu > 315 && jiaodu < 360)
        {
            Debug.Log("上");
        }
        //右  
        if (jiaodu >= 45 && jiaodu < 135)
        {
            Debug.Log("右");
        }
        //下  
        if (jiaodu >= 135 && jiaodu < 225)
        {
            Debug.Log("下");
        }
        //左  
        if ((jiaodu >= 225 && jiaodu < 315))
        {
            Debug.Log("左");
        }
    }

2、手柄震动

    private void Update()
    {
        //右手震动
        var deviceIndex2 = SteamVR_Controller.GetDeviceIndex(SteamVR_Controller.DeviceRelation.Rightmost);
        SteamVR_Controller.Input(deviceIndex2).TriggerHapticPulse(500);
    }

3、获取射线选中的物体

    //赋值右手
    public VRTK_Pointer vRTK_Pointer;
 
    private void Start()
    {
        vRTK_Pointer.DestinationMarkerEnter += enter;
    }
 
    void enter(object sender,DestinationMarkerEventArgs e)
    {
        print(e.target.name);
    }

4、头部碰撞到的物体事件

    //赋值PlayArea
    public VRTK_HeadsetCollision vRTK_HeadsetCollision;

    private void Start()
    {
        vRTK_HeadsetCollision.HeadsetCollisionDetect += VRTK_HeadsetCollision_HeadsetCollisionDetect; ;
    }

    private void VRTK_HeadsetCollision_HeadsetCollisionDetect(object sender, HeadsetCollisionEventArgs e)
    {
        //当头部碰到碰撞体后执行
        print(e.target.name);
    }
发布了320 篇原创文章 · 获赞 77 · 访问量 17万+

猜你喜欢

转载自blog.csdn.net/weixin_38239050/article/details/103336080