Unity SteamVR插件集成

重要组件

SteamVR_Camera

VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面

使用方法:

l 在任一个摄像机上增加脚本

l 点击Expand按钮

完成以上操作后,原本的摄像机会变成如下结构

l Origin:位置

l Head:头部

l Eye:眼睛

l Ears:耳朵

至此,游戏中Vive中可以看到游戏画面,360度旋转查看游戏世界,在游戏世界中移动等

SteamVR_ControllerManager和SteamVR_TrackedObject

控制器,主要用于设置和检测Vive控制器。

Vive控制器由菜单键(ApplicationMenu),触摸板(Touchpad),系统键/电源键(System),扳机键(Trigger),侧柄键(Grip),组成

1 Menu button(菜单键)

2 Trackpad(触摸板)

3 System button(系统键/电源键)

4 Status light

5 Micro-USB port

6 Tracking sensor

7 Trigger(扳机键)

8 Grip button(侧柄键)

使用方法

在Origin物体上添加2个子物体代表Vive的2个手柄,增加SteamVR_TrackedObject,Index设置为None

在Origin物体上添加SteamVR_ControllerManager,设置左右手柄

至此就完成了手柄的集成。

获取手柄状态

通过代码

var device = SteamVR_Controller.Input(uint);

device.GetTouchDown(SteamVR_Controller.ButtonMask)

就可以获取到某个按键的状态

或者使用

var system = OpenVR.System;

system.GetControllerState(uint, ref VRControllerState_t))

获取当前所有的按键状态

手柄震动

public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad)

{

var system = OpenVR.System;

if (system != null)

{

var axisId = (uint)buttonId - (uint)EVRButtonId.k_EButton_Axis0;

system.TriggerHapticPulse(ControllerIndex, axisId, (char)durationMicroSec);

}

}

或者

var device = SteamVR_Controller.Input(uint);

device. TriggerHapticPulse();

SteamVR_RenderModel

该组件用于渲染手柄的模型,并且跟踪手柄的位置

使用方法

在左右手柄的物体下创建一个子物体,子物体上添加SteamVR_RenderModel脚本,Shader可以根据需求设置,比如设置为Standard

至此,游戏中可以看到手柄模型和手柄位置同步

SteamVR_PlayArea

用于显示游玩区域。

使用方法,在Origin物体上添加该脚本即可

可以看到游戏场景中多了一个显示区域

注意事项

制作UI的时候需要使用世界坐标,通过不同相机的Depth复合,目前还不支持(2016/5/23)

注意ControlIndex的值,默认情况下都会自动设置,如果手动设置错误将导致错误的表现

时间: 2024-10-17 22:47:11

Unity SteamVR插件集成的相关文章

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

重要组件 SteamVR_Camera VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面 使用方法: l 在任一个摄像机上增加脚本 l 点击Expand按钮 完成以上操作后,原本的摄像机会变成如下结构 l Origin:位置 l Head:头部 l Eye:眼睛 l Ears:耳朵 至此,游戏中Vive中可以看到游戏画面,360度旋转查看游戏世界,在游戏世界中移动等 SteamVR_ControllerManager和SteamVR_TrackedObject 控

Unity 通过Unity Admob Plugin插件集成admob教程

原创:officemaster.cn 下载Unity Admob Demo,插件里面包含Admob_Unity_Demo.unitypackage 插件文件AdmobPluginRes  是Admob 的ios sdk和插件使用样例代码打开样例代码可以看到代码里面如何使用Unity Admob插件 把Admob Unity插件添加进unity工程1. 打开Unity工程2. 从菜单打开,Assets -> Import Package -> Custom Package.3. 选中Unity插

Unity热门插件推荐

Unity热门插件推荐 前言 Unite2015的笔记 ,以下扩展主要针对mobile 以下截图更新自:2016-04-28 Mesh Baker https://www.assetstore.unity3d.com/en/#!/content/5017 针对美术人员,合并材质,纹理,Mesh合并 Simple LOD https://www.assetstore.unity3d.com/en/#!/content/25366 Mesh减化,可以支持有动画的模型 Easy Movie Textu

Sublime Text 3118 插件集成定制汉化方案--赵亮(碧海情天)

Sublime Text 3118 插件集成定制汉化方案–赵亮(碧海情天) 原创内容,转载请保留原作者完整姓名信息 前言 一晃,离最开始为Sublime Text写汉化和插件开发与发布的教程 http://blog.csdn.net/theforever/article/details/8962727,都已经过去三年了.这其间,我又写过几篇具体介绍自己汉化定制的Sublime Text从3056到3061的递进式方案,大家可以参考: http://my.oschina.net/theforeve

eclipse git 插件集成与本地使用

转http://blog.csdn.net/wisgood/article/details/12949131 1.集成插件 进入到插件集成功能,在输入框写入    Git - http://download.eclipse.org/egit/updates 点击add按钮,出现如下对话框 点击ok按钮出现以下对话框 只选择EGit的两个选项即可,点击next后等待 之后进入如下页面 点击next 以下界面选择接受,点击finish 开始安装 之后会提示重启eclipse,重启即可完成集成 如果长

Unity KGFMapSystem插件制作小地图

KGFMapSystem版本:2.3 在我们开发游戏或者虚拟现实中,一般都会用到小地图,如果要我们去写小地图,可以用到unity 3d中就有一个插件,是专门开发小地图用的,这个插件就是KGFMapSystem.这个是它的官网:http://www.kolmich.at/documentation/ 还有一个介绍用KGFMapSystem制作小地图的台湾网站,内容比较详细:http://www.cg.com.tw/KGFMapSystem/Content/KGFMapSystem_001.asp

Unity视频播放插件

资源名称:Unity视频播放插件下载? 资源大小:  36.2MB 资源类型: .unitypackage 安装要求:Unity 4.6.8 或更高版本 链接: https://pan.baidu.com/s/1miJr5AK 密码: v5cx 资源说明: 最近在研究Unity视频播放.虽然可以实现简单的视频播放功能,但是对于商业化或者移动端的项目来说远远不够(比如:当文件较大时,会出现明显的卡顿). 网上找了好多资料,试了好多插件,综合比较下来,AVPro Video是效果最好的.不仅可以实现

WCF技术剖析之七:如何实现WCF与EnterLib PIAB、Unity之间的集成

原文:WCF技术剖析之七:如何实现WCF与EnterLib PIAB.Unity之间的集成 在这之前,我写过深入介绍MS EnterLib PIAB的文章(参阅<MS Enterprise Library Policy Injection Application Block 深入解析[总结篇]>),也写过WCF与PIAB的集成(参阅:<WCF后续之旅(8):通过WCF Extension 实现与MS Enterprise Library Policy Injection Applicat

Spring Boot MyBatis 通用Mapper插件集成

看本文之前,请确保你已经在SpringBoot中集成MyBatis,并能正常使用.如果没有,那么请先移步 http://blog.csdn.net/catoop/article/details/50553714 做了解后,再按本文步骤操作. 使用MyBatis在我们通过xml集中配置SQL,并通过创建接口Mapper文件来完成持久化DAO层(mybatis内部使用的是动态代理,所以我们不需要自己编写实现类). 然而在实际开发中,单表操作非常多,如果你也想像JPA.JDBC那样做一个所谓的Base