SteamVR
1插件下载
1:首先要下载Steam VR插件,在assert store上面就可以直接搜索SteamVR后直接导入就行。
2:根据企业的要求下载对应的版本进行开发。
2文件分布
Steam VR插件使用起来也非常简单,直接将项目的camera替换成prefabs中的CameraRig就可以了
Plugins
/*这个文件夹存放一些Steam VR的信息*/
——penvr_api.bundle
——Contents
/*Steam VR底层的c++文件*/
——x86
/*SteamVR C#调用底层c++的接口*/
openvr_api.cs
SteamVR
/*这个目录下的脚本都是用来定制SteamVR插件中某些脚本在Unity中的Inspector界面及功能的*/
——Editor
/*定制SteamVR_Camera.cs这个脚本在Inspector中的显示效果*/
SteamVR_Editor.cs
/*定制SteamVR_RenderModel.cs脚本在Inspector中的功能*/
SteamVR_RenderModelEditor.cs
/*上面提到的弹出的SteamVR_Settings对话框里面的选项就在这儿定制*/
SteamVR_Settings.cs
/*定制SteamVR_SkyBox.cs在Inspector中显示的属性*/
SteamVR_SkyboxEditor.cs
/*用来检查插件的更新*/
SteamVR_Update.cs
/*这个文件夹下面放着一些工具脚本*/
——Extras
/*这个脚本用来检测物体是否被用户所凝视*/
SteamVR_GazeTracker.cs
/*通过手柄指向来产生一条激光束*/
SteamVR_LeaserPointer.cs
/*用来瞬移的脚本*/
SteamVR_Teleporter.cs
/*示例场景中扔物体的脚本*/
SteamVR_TestThrow.cs
/*示例场景中跟踪相机的脚本*/
SteamVR_TestTrackedCamera.cs
/*控制器(手柄)集成脚本*/
SteamVR_trackedController.cs
/*存放示例demo的材质体*/
——Materials
/*存放SteamVR预制体*/
——Prefabs
/*相机预制体*/
[CameraRig]
/*状态相关的overlay显示预制体*/
[Status]
/*SteamVR_Render预制体*/
[SteamVR]
/*一些自带的shader*/
——Resources
——Scenes
/*SteamVR核心脚本*/
——Scripts
/*SteamVR的封装类*/
SteamVR.cs
/*SteamVR的核心相机类*/
SteamVR_Camera.cs
/*SteamVR相机翻转*/
SteamVR_CameraFlip.cs
/*SteamVR相机网格隐藏*/
SteamVR_CameraMask.cs
/*控制器封装类*/
SteamVR_Controller.cs
/*控制器管理类*/
SteamVR_ControllerManager.cs
/*声音控制类*/
SteamVR_Ears.cs
/*外部相机*/
SteamVR_ExternalCamera.cs
/*场景进行渐显或者渐隐的类*/
SteamVR_Fade.cs
/*跟踪设备的扫描范围*/
SteamVR_Frustum.cs
/*绘制pc上的伴随窗口*/
SteamVR_GameView.cs
/*关节反身运动*/
SteamVR_IK.cs
/*场景切换类*/
SteamVR_LoadLevel.cs
/*菜单类*/
SteamVR_Menu.cs
/*overly封装类*/
SteamVR_Overlay.cs
/*运动区域*/
SteamVR_PlayArea.cs
/*Vive渲染流程控制的核心类*/
SteamVR_Render.cs
/*设置天空盒*/
SteamVR_Skybox.cs
/*做球形投影的类*/
SteamVR_SphericalProjection.cs
/*通过overlay显示统计信息*/
SteamVR_Stats.cs
/*根据不同状态渐变显示不同的信息*/
SteamVR_Status.cs
/*根据不同状态渐变显示不同文本信息*/
SteamVR_StatusText.cs
/*控制器测试脚本*/
SteamVR_TestController.cs
/*头盔上的前置相机*/
SteamVR_TrackedCamera.cs
/*跟踪设备管理类*/
SteamVR_TrackedObject.cs
/*5.x版本以前更新设备位置的脚本*/
SteamVR_UpdatePoses.cs
/*工具类,包括事件系统,Transform等等*/
SteamVR_Utils.cs
/*常用的纹理*/
——Textures
3制作VR Camrea
常见的两种方式:
第一种:默认预制体
1. 也就是Prefabs里面的CameraRig。将这个相机拖入场景,此时如果我们运行场景,VR头显就可以用了。
[CameraRig]挂有两个脚本,分别为SteamVR_ControllerManager和SteamVR_PlayArea两个脚本。
SteamVR_ControllerManager:追踪两个手柄进行功能反馈的,此脚本会收集左右两个控制器的位置,按键反馈,以及手柄内置参数。因此两者之间是关联状态。
Objects:如果你额外有控制器在此处添加即可
AssignAllBeforeIdentified:如果你想要在他们的角色(左对右)之前被任意分配给控制器的对象,就设置为true
SteamVR_PlayArea:当前脚本是限定区域范围的,会模拟类似“墙”的效果
borderThickness:区域的边直径
wireframeHeight:可活动的高度显示
drawWireframeWhenSelectedOnly:绘制线条,主要是游玩区周围的白色框
drawInGame:主要是地下的蓝色线条,可以自己修改颜色,一般要勾选上,不然在游戏中看不到游玩区的。
[CameraRig]下有三个子级,分别为头盔和两个控制器
Controller (left):左手控制器 此游戏物体有个追踪脚本。获取手柄的位置。
SteamVR_TrackedObject:脚本定位,追踪效果
Index:追踪的对象,这里需要注意的是,如果是手动添加的话,默认会追踪头盔,我们需要手动修改为空。
这里一般来说只识别手柄和头盔。如果在开始之前设定Index中Device1-15中的定值,会根据设定的值决定是多少,否则将会随机分配。
Origin:如果没有设置,相对于当前物体所在的位置。
isValid:不同版本决定是否显示。实际上检测当前手柄状态是否移动。
Model:手柄的模型显示
当运行的时候在Game面板中显示一个手柄的模型,在这里需要注意的一点是,如果我们想将模型绑定到当前的手柄上,必须在运行状态下,设置起角度以及位置。因为它是在程序运行之后动态获取的。(鼠标悬停在变量上)
SteamVR_RenderModel :渲染模型所需要的脚本
Index:获取追踪脚本的索引类型(相对于父级)
modelOverride:修改当前模型的名称
shader:模型的着色器
verbose:检测是否在载入渲染模型时启用打印输出。
createComponents:如果可用,则分解为单独的组件,否则作为单个网格加载。
updateDynamically:在运行时更新组件的转换,以反映用户操作(类似同步操作)
Camera (head):头盔的显示效果
SteamVR_TrackedObject:脚本定位,追踪效果
当前脚本和手柄一样,只不过默认追踪为Hmd选择项即可。
第二种:修改默认摄像机
我们要了解原理是怎么样构成的,熟悉每个脚本的运作哦方式。一般会在面试中问到SteamVR的组成部分有哪些。
步骤:将摄像机重置位置,添加一个SteamVR_Camera脚本在摄像机上并点击扩展。
为手柄添加一个追踪脚本既:SteamVR_TrackedObject脚本,然后追踪默认选择为空
在手柄子级添加一个空物体,然后添加一个SteamVR_RenderModel,然后在Shader属性中添加一个标准模型(Standard)。
在父级上添加
一个Steam VR_Controller Manager脚本,并且将两个控制器分别添加到对应的选项里面
如果要设置区域,添加一个Steam VR_Play Area脚本,并且将MsehRenderer,的材质修改成Sprites/Default,最后,把Size设置一下就可以了.
因篇幅问题不能全部显示,请点此查看更多更全内容
Copyright © 2019- huatuo8.com 版权所有 湘ICP备2023022238号-1
违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com
本站由北京市万商天勤律师事务所王兴未律师提供法律服务