怎么安装设备,配置环境我就不说了,自行百度,教程很多也很简单。接下来说下Vive手柄的控制。

手柄是HTC Vive的重要交互手段,我们通过第一个图片应该对其有一个直观的了解了,总共是九个按钮:

    • 第一个是菜单按钮;
    • 2,3,4,5分别对应的是Trackpad/Touchpad的上下左右,有时候对应的是XBox手柄的▲OX囗四个按钮或者摇杆;
    • 6对应的是系统按钮/Steam;
    • 7是Trigger/扳机,对应大多数FPS游戏里面的枪械的Shoot/Fire;
    • 8对应的Grip/紧握在手柄的左右两侧各有一个,有时候我们用它来翻页;
    • 9其实是Trackpad/Touchpad在Z轴的一个延伸,相当于是点击事件Click.
using UnityEngine;
using System.Collections;
/// <summary>
/// 扳机控制触发事件
/// </summary>
public class ComfirmController : MonoBehaviour {
//手柄
SteamVR_TrackedObject trackedObj; void Awake()
{
//获取手柄脚本组件
trackedObj = GetComponent<SteamVR_TrackedObject> ();
} // Use this for initialization
void Start () { } // Update is called once per frame
void FixedUpdate () { //获取手柄输入
var device = SteamVR_Controller.Input ((int)trackedObj.index); //此处可以换其他的函数触发GetPress/GetTouch /GetPressUp GetTouchDown/GetTouchUp/GetAxis
if (device.GetPressDown(SteamVR_Controller.ButtonMask.Touchpad))
{
Debug.Log("按下圆盘");
}
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Trigger))
{ Debug.Log("按下扳机键");
}
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.Grip))
{ Debug.Log("按下手柄侧键");
}
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))
{ Debug.Log("按下手柄菜单键");
}
else if (device.GetPressDown(SteamVR_Controller.ButtonMask.ApplicationMenu))
{ Debug.Log("按下手柄菜单键");
} }
}

HTC Vive开发笔记之手柄控制的更多相关文章

  1. HTC Vive开发笔记之UI Guideline

    本文转自HTC官方论坛,原址https://www.htcvive.com/cn/forum/chat.php?mod=viewthread&tid=1641&extra=page=1 ...

  2. HTC Vive开发笔记之SteamVR插件集成

    重要组件 SteamVR_Camera VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面 使用方法: l 在任一个摄像机上增加脚本 l 点击Expand按钮 完成以上操 ...

  3. HTC Vive开发笔记之手柄震动

    手柄震动的代码SteamVR_Controller脚本的最上面的注释里面就有说明,其实也很简单 // Example usage: //这个栗子是左手柄震动 右手震动只需把Leftmost换成Righ ...

  4. unity3D HTC VIVE开发-物体高亮功能实现

    在VR开发时,有时需要用到物体高亮的功能.这里使用Highlighting System v3.0.1.unitypackage插件实现. Highlighting System v3.0.1的介绍访 ...

  5. HTC vive开发:关于手柄按键

    一.关于左右手柄的对应关系 两个手柄和SteamVR_TrackedObject.EIndex是对应的,一个是EIndex.Device2,另一个是EIndex.Device3(有编号的那个) 在场景 ...

  6. osgMulitiplerendertargets sample 中fbo使用【HTC VIVE开发中应用】

    osgmultiplerendertargets.cpp ...................................... // now create the camera to do t ...

  7. Unity 5.4大赞:HTC Vive经典The lab渲染器开源

    HTC Vive提供了一个不错的免费VR demo,最近1周仔细体验了一番. 仔细看了其安装文件,竟然是Unity 5.4beta版本(通过查log,知道Valve公司用的是最新的5.4.0b11版本 ...

  8. 用Unity开发HTC VIVE——手柄控制篇

    写这篇文章的原因主要是因为现在虚拟现实非常的火爆但目前主流的虚拟现实设备(HTC VIVE)的教程却少的可怜,这个我深有体会.所以,我想将我平时开发中遇到的问题以及解决方法记录下来,分享给大家,若其中 ...

  9. HTC vive VR设备软硬件安装+运行unity开发的VR程序

    总结在HTC vive VR开发过程中的HTC vive的安装调试 1.首先确保电脑的配置满足要求: 进入官网,测试电脑是否满足要求 链接:https://www.vive.com/us/produc ...

随机推荐

  1. 回车键转tab键解决方案一

    <%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding= ...

  2. 页面路由跳转地址-get方式

    从开始敲代码,一直到现在,总是记不太清页面上的路由应该怎样书写,因此最终还是觉得自己应该提笔写下来以免自己再犯同样的错误! 1.get方式访问页面 http://localhost:3001/arti ...

  3. WC2015 酱油记

    这是真·酱油记! Day0 因为我们在上海,所以只要坐高铁就可以了2333.到了火车站以后我们坐大巴到学军中学恩,结果坐大巴的时间和做坐高铁的时间差不做←_←. 吐槽了一下住宿环境和课程表就已经晚上了 ...

  4. PDF 补丁丁 0.4.2.905 测试版发布:智能合并功能减小合并文件的大小

    之前的测试版在合并文件功能处添加两个相同的PDF文件,程序会重复写入该文件的内容,导致文件体积膨胀,浪费存储空间. 例如:使用者需要在原 PDF 文件(设文件为1.pdf)第2和第3页中间插入几张图片 ...

  5. WCF初探-16:WCF数据协定之基础知识

    数据协定概念 “数据协定”是在服务与客户端之间达成的正式协议,用于以抽象方式描述要交换的数据. 也就是说,为了进行通信,客户端和服务不必共享相同的类型,而只需共享相同的数据协定. 数据协定为每一个做数 ...

  6. 什么是Angular? 我们为什么要学习它?

    在我更新Ionic的时候有人问我什么是 Angular,我们为什么要学习它啊?这个是我的疏忽了,在没有告诉你们什么是 Angular 的时候就让大家着手去学习 Ionic .那么今天就让我们认识一下什 ...

  7. easyui datagrid

    function initData(){ //数据列表 yftjsy=$("#yftjsy").datagrid({ url: '', fit:true, showFooter:f ...

  8. 【winform 学习】登录

    一直都是做asp.net,没有做过winform项目,新建个项目后,就啥不会了,不知道从何下手. 简单的登录项目也不会,画了个登录界面后,就遇到了,跳入主界面后,怎样将登录界面关闭的问题. 在网上找到 ...

  9. php大力力 [043节] 现在要做个删除前的提示功能

    php大力力 [043节] 现在要做个删除前的提示功能

  10. Linux线程-pthread_join

    pthread_join用来等待另一个线程的结束,函数原型如下: extern int pthread_join __P ((pthread_t __th, void **__thread_retur ...