美文网首页
HTCVive使用手柄射线拖拽模型

HTCVive使用手柄射线拖拽模型

作者: Kyle_An | 来源:发表于2017-10-30 18:19 被阅读0次

    一、将VRTK_SimplePointer脚本中pointerCollidedWith变量改为全局变量


    Paste_Image.png

    二、物体设置Tag值,为了判断是否是要拖拽的物体(代码如下)


    Paste_Image.png
    /// <summary>
            /// 射线拖拽改变模型位置
            /// </summary>
            public void RayDragObj(RaycastHit m_RaycastHit)
            {
                if (m_RaycastHit.collider != null && m_RaycastHit.collider.tag == "Player")
                {
                    var device = SteamVR_Controller.Input((int)controllerIndex);
                    if (device.GetTouch(SteamVR_Controller.ButtonMask.Trigger))
                    {
                        if (m_RaycastHit.collider.gameObject.GetComponent<Rigidbody>() == null)
                        {
                            m_RaycastHit.collider.gameObject.AddComponent<Rigidbody>();
                            m_RaycastHit.collider.gameObject.GetComponent<Rigidbody>().useGravity = false;
                        }
                        pointerCollidedWith.transform.SetParent(this.transform);
                    }
                    if (device.GetTouchUp(SteamVR_Controller.ButtonMask.Trigger))
                    {
                        pointerCollidedWith.transform.SetParent(null);
                    }
                }
            }
    

    三、所有要修改的内容都是在VRTK_SimplePointer这个脚本中修改的

    相关文章

      网友评论

          本文标题:HTCVive使用手柄射线拖拽模型

          本文链接:https://www.haomeiwen.com/subject/ucdmpxtx.html