HTCVIVE物体跟随手柄移动&&手柄叩击

【1】
AssetStore搜索下载以下package

  • VRTK - Virtual Reality Toolkit - [VR Toolkit]
  • SteamVR
  • VIVE Input Utility

【2】
得到[VRTK_SDKManager]

  • 根据路径Assets/VRTK/Examples/001_CameraRig_VRPlayArea,打开该场景
  • 找到[VRTK_SDKManager],拖拽到Project视图为预制件

【3】
创建右(左)手柄物体

  • 在需要的场景把[VRTK_SDKManager]预制件拖入
  • [VRTK_SDKManager]上设置左右手柄
  • SteamVR位置的Y轴归零
  • [CameraRig]上设置左右手柄
  • [CameraRig]下,创建GameObject,添加Steam VR_Tracked Object 脚本,Index设置为Device 1

【4】
脚本(物体跟随上一步骤创建的手柄移动)

public class FollowHandShank: MonoBehaviour
    {
        #region--Define Variables
        private SteamVR_TrackedObject hand;
        private SteamVR_Controller.Device device;
        public GameObject handShank;//手柄(步骤三的GameObject)
        public GameObject player;//跟随的物体
        #endregion

        #region--System Functions
        void Start()
        {
            hand = GetComponentInParent<SteamVR_TrackedObject>();
            device = SteamVR_Controller.Input((int)hand.index);
            //设置手柄为父物体 并跟随手柄移动
            if (handShank != null)
            {
                player.transform.SetParent(handShank.transform);
                player.transform.localPosition = new Vector3(0, 0, 0);
            }
        }

        void Update()
        {
            //叩击手柄控制物体状态
            PlayerStateControll();
        }
        #endregion

        #region--Define Functions
        public void PlayerStateControll()
        {
            if (hand.isValid)
            {
                hand = GetComponentInParent<SteamVR_TrackedObject>();
            }
            device = SteamVR_Controller.Input((int)hand.index);

            if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))
            {
	            //Do something
            }
        }
        #endregion
    }
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值