有用unity导入过unity steamvr pluginn的吗

Unity_PC端内嵌网页浏览器,支持SteamVR+VRTK插件
unity asset
store出现了一个新的浏览器插件,支持pc端,下载地址:/club/thread-.html.&
以下的内嵌浏览器插件由于一些隐藏的bug,容易报错闪退.
用CoherentUI插件实现内嵌网页效果,可以播放视频,在此基础上修改添加支持了SteamVR交互方式,效果还是很不错的!
该插件还是有些问题的,有些时候加载过于频繁会弹出一个未响应窗口,而且比较影响帧数.
项目工程文件:&&
碰到不能播放flash视频,要下一个支持火狐浏览器的flash安装文件,不支持html5的视频.
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。关于控制器的相关信息都包含在SteamVR_Controller这个脚本之中。注意:SteamVR_Controller是非Monobehavior的脚本,并没有挂在场景下,其运行是通过SteamVR_Render脚本对于其中Update()函数的调用从而一直循环获取手柄相关信息。而SteamVR_Render脚本是在程序运行时自动加载至场景的
ButtonMask类:手柄各按键的名称。
Device类:最重要的类,封装了跟踪设备的全部信息。
Update()函数:被SteamVR_Render脚本调用,更新各跟踪设备的信息。
Input()函数:根据Index初始化Device[]数组,并实例化所有16个Device。
DeviceRelation和GetDeviceIndex()结合获取特定的设备Index,如leftmost、rightmost。在SteamVR_TestController脚本中有使用到该函数获取用户的左右手手柄的Index。用该方法应该可以识别出用户所拿的手柄是哪一个。
下面着重分析Device类:
l& GetPress:按下按键一直触发
l& GetPressDown:按下按键只触发一次
l& GetPressUp:按下按键只触发一次
针对按键的三个函数,每种函数有两个重载,参数为ButtonMask或EVRButtonId类,第二种形式会将EVRButtonId转换为ButtonMask后调用第一种得到结果。
l& GetTouch
l& GetTouchDown
l& GetTouchUp
针对Touchpad的三个函数,一样的两种形式,同上不解释。
l& GetAxis()
获取Touchpad圆盘坐标或Trigger的行程值(0-1),函数默认参数是手柄上的Touchpad。共有5个AxisId参数可选,0是TouchPad,1是Trigger,2,3,4应该是没有用的,且此函数只接受EVRButtonId类参数而不接受ButtonMask。
l& TriggerHapticPulse
手柄震动控制函数,参数名称解释的是时间,默认500,但实际上控制的是震动的强度。默认AxisId是EVRButtonId_touchpad,选择其他EVRButtonId没用(等价参数axis0可以),其会调用OpenVR中的同名函数。参数超过4000会无效,导致震动不触发。可以通过协程的while(true)+waitforsecond控制震动间隔,通过stop协程控制震动结束。
l& GetHairTrigger
l& GetHairTriggerDown定义为有false转至true的过程,判断先前状态和当前状态。
l& GetHairTriggerUp 定义为有true转至false的过程,判断先前状态和当前状态。
这三个函数获取HairTrigger的状态,其值对应rAxis1.x的值。But什么是HairTrigger?形象点说就是像头发般轻轻的触发。HairTrigger是检测当你握住扳手超过一个固定值(0.1,可调)时即触发的状态。相当于利用Trigger的变化量来做一个功能的触发,很棒不是吗。轻轻碰一下Trigger使得行程大于0.1即可触发一个功能。
&整个脚本的执行顺序如下:
l& Update();
l& Input()初始化16个设备的信息存储空间,并返回某个设备;
l& Device.Update():做两件事
1.&&&& GetControllerStateWithPose()调用OpenVR中的函数获取手柄状态和姿态。结果存在这两个变量State(VRControllerState_t)和Pose(TrackedDevicePose_t)中,由GetState()和GetPose()获取并由此返回一系列的可查询参数及各种Get函数。
各可查询参数说明如下(相当于对TrackedDevicePose_t中的参数翻译了下)
valid:GetControllerStateWithPose()函数调用是否成功;
connected:判断设备是否连接;
hasTracking:判断设备是否跟踪正常;
&根据ETrackingResult的结果得到下面三个参数:
outOfRange:判断设备是否超出范围;
calibrating:判断设备是否正在校正;
uninitialized:判断设备是否未初始化;
&transform:获取的结果是包含12个元素的一维数组,通过SteamVR_Utils.RigidTransform函数将12个元素重组为3X4矩阵并针对Unity的坐标系进行修正,同时添加了对position和rotation方便的引用。
velocity和angularVelocity:这两个速度也针对Unity的坐标系进行修正,lighthouse跟踪的空间轴方向与Unity存在偏差。
2. UpdateHairTrigger()。检测自定义的一种操作:轻按Trigger。&
阅读(...) 评论()SteamVR的进军之路1——了解SteamVR的unity3d开发包_Unity3D教程_中国AR网
&当前位置: &
做了很长时间的了,但是从没有写过一篇博客,有人说:“写博客是成为大神的必经之路”。所以想着抽空多谢谢博客,一来巩固下知识和技术,二来分享下开发经验。不过刚开始,肯定写的不好,希望大家能谅解下。既然出发点是巩固知识和技术,所以想着这条进军之路最好还是从头开始讲起。那么,今天这篇文章的内容主要就是开发的第一步。首先先介绍下我的开发环境: 5.3.1f1;SteamVR的unity3d工具包(StreamVRPlugin.unitypackage)StreamVRPlugin.unitypackage导入unity3D,删除初始化场景中的默认主相机Main Camera,将SteamVR/Prefabs/[CameraRig]拖入场景。点击运行,就可以运行场景了。这里我用的VR设备是HTC。我们可以先来看下预设件CameraRig的结构。[CameraRig]Controller (left)ModelController (right)ModelCamera (head)Camera (eye)Camera (ears)Controller (left)、Controller (right)分别对应左手控制柄和右手控制柄,Camera (eye)、Camera (ears)分别对应VR头盔上的屏幕和耳机。了解完CameraRig后,我们来看下CameraRig上的挂接组件——SteamVR_PlayArea。(活动范围框的组件)我们来看下组件的属性:Border Thickness:绘制活动范围框的粗细;Wireframe Height:线框的高度,线框是干什么用的呢?就是当你带上头盔后,当前位置快要到达活动范围的边界时,会出现线框来提醒你。Draw Wireframe When Selected Only:从字面意来解释是“只有在选择时才会绘制线框”,不知道是不是我的理解有误,我也一直不明白这个勾选属性到底是做什么用的,实际测试也没有测试出它的用途。所以如果有哪位大神知道的话,还望告知一二。Draw In Game:勾选后,当运行游戏时,就会绘制活动范围框;Size:活动范围框的大小;下来框中有4个选项(Calibrated、400X300、300X225、200X150),其中Calibrated选项为自动校准(根据现实的活动范围设置来自动校准)Color:活动范围框的颜色值。SteamVR的开发工具主要需要了解的也就这些了,至于SteamVR的互动开发,需要再用到一个开源工具包,放在下一个博客来讲了。
中国AR网()为更好的服务国内AR技术爱好者 ,现已推出“AR那些事”官方公众号,请在微信公众账号中搜索「AR网」或者加QQ群:,即可获得每日内容推送和最新的AR开发教程及AR H游戏资源哦!
上一篇: 下一篇:
最新评论 两字日R日是你呀日你猜我是谁日访客日有用unity导入过steamVR plugin的吗 - 操作系统,电影,电子商务|传闻区
CWQU当前位置: & 操作系统,电影,电子商务 & 有用unity导入过steamVR plugin的吗未解决问题 有用unity导入过steamVR plugin的吗
234 次浏览
22:01 提问
详细问题描述及疑问:期待您的答案,你无异于雪中送炭,让我感激涕零

本页链接:ADADAD
满意答案相关内容AD大家还关注ADUnity SteamVR插件集成_资源教程_中国AR网
&当前位置: &
重要组件_CameraVR摄像机,主要功能是将Unity摄像机的画面进行变化,形成中的成像画面使用方法: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 light5 Micro-USB port6 Tracking sensor7 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.Ssystem.GetControllerState(uint, ref VRControllerState_t))获取当前所有的按键状态手柄震动public void TriggerHapticPulse(ushort durationMicroSec = 500, EVRButtonId buttonId = EVRButtonId.k_EButton_SteamVR_Touchpad){var system = OpenVR.Sif (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复合,目前还不支持()注意ControlIndex的值,默认情况下都会自动设置,如果手动设置错误将导致错误的表现。更多就在(/)
中国AR网()为更好的服务国内AR技术爱好者 ,现已推出“AR那些事”官方公众号,请在微信公众账号中搜索「AR网」或者加QQ群:,即可获得每日内容推送和最新的AR开发教程及AR H游戏资源哦!
上一篇: 下一篇:
最新评论 两字日R日是你呀日你猜我是谁日访客日

我要回帖

更多关于 unity android plugin 的文章

 

随机推荐