尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
vrtk官方44个案例最详细介绍
前言本文集合了VRTK场景案例以及数篇博客的知识点总结而成如果你是看不懂专业属于的小白或者是想要轻松了解VRTK44个场景的初学者那么这篇文章肯定适合你本文运用了大量的白话文注释以及图文结合使用最新版本VRTK插件一定是你学习的好帮手——————————————————————————————————————————001_CameraRig_VRPlayArea该场景主要是相机的设置重点需要创建一个空物体然后在空物体上挂载组件VRTK_SDKManager然后将预制体SDKsetups挂载在空物体上点击一下VRTK_SDKManager的Auto populate自动查找挂上预制体的头显设置如果相机的位置不好可以在头显设置里找到CameraRig调整002_Controller_Events手柄监听设置需要在挂载的VRTK_SDKManager组件里面将设定好的左3手柄和右手柄指定进去具体操作需要两个空物体来搭载监听手柄的组件VRTK_ControllerEvents然后将两个放置了空物体的组件的物体按照左右手的分类放入VRTK_SDKManager的ScriptAliases对应的槽里面然后就可以分别在左右手柄的物体下挂载脚本监听手柄的按键了Action Alias Buttons下面是按键对应指定的事件可以在加的脚本中添加按键按下后触发别的事件Pointer Toggle Button:用来开关镭射光标的按钮默认触摸板按下Pointer Set Button:用来设置目的地标志的按钮默认触摸板按下Grab Toggle Button:用来抓取游戏对象的按钮默认为手柄按钮Use Toggle Button:设置使用游戏对象按钮默认为扳机单击。UI Click Button:用来点击UI元素按钮默认为扳机单击。Menu Toggle Button:用来调出游戏菜单的按钮默认为应用菜单003_Controller_SimplePointer射线的产生具体操作在前面添加手柄监听的基础上添加两个组件用来实例化一条射线以及将他渲染出来添加VRTK_Pointer和VRTK_Straight Pointer Renderer组件然后在产生射线的组件将放置渲染射线组件的物体挂上去挂在Pointer Renderer处一般产生射线以及渲染射线都放在一个物体上所以就是将自身的的物体挂上去就行004_CameraRig_BasicTeleport射线传送由上一节射线发射出后在创建一个空物体放置移动的组件VRTK_Basic Teleport按住按键发射出射线后检测如果碰撞到物体那么松开手后就会瞬移到碰撞的位置参数 1, 射线颜色2, 眨眼传送速度直接出现在位置或者走个缓慢熄屏亮屏动画控制眨眼的时间3,传送延迟时间传送后黑屏多久才可以播放传送动画4以玩家头盔位置为基准进行瞬移5设置不可瞬移到达的目标标签当瞬移射线检测到该类目标时不可瞬移过去6限制边缘传送距离NavMesh寻路算法网格边缘距离005_Controller_BasicObjectGrabbing抓取物体具体操作在经过第项目二的手柄配置后我们可以给手柄添加两个组件实现手柄抓取物体的效果VRTK_Interact Touch 和VRTK_Interact Grab挂载在代表左右手的物体上然后在物体上挂载一个组件代表这个物体可以被抓取VRTK_interactable Obiect,然后将自身挂载在Secondary Grab Action Script上面代表自身可以被抓取抓取后会默认给物体添加一个组件后面需要换手操作的话就需要在添加一个组件VRTK_SwapControllerGrabAction记得将VRTK_interactable Obiect的Is Grabbale勾选上才可以抓取起来006_Controller_UsingADoo开门方法运用具体操作将门的组成物体放在一个空物体下给那个空物体挂载一个盒子碰撞器调整为门的大小将空物体的y轴放在门框处然后调整碰撞体的位置让他和门的物体一样大碰撞体用来检测是否碰到门在空物体上挂载自带开门脚本此脚本为VRTK_interactable Obiect组件的拓展沿用了他的功能然后在手柄对应的物体上添加抓取的两个脚本以及一个开门组件VRTK_Interact Use在门身上的开门脚本上将Is Usable勾选就可以检测到该组件了007_CameraRig_HeightAdjustTeleport升降传送走到一个比自身当前位置高的位置时会传送到更高的位置上去具体操作在保持项目4直线传送的设置下创建一个空物体用来分类放置升降传送的组件分别是VRTK_Body Physics是人头检测方面组件检测头显在移动时的正常碰撞就像是真的有个人VRTK_Height Adjist Teleport高度传送要有检测高度才能传送所以二者一起走然后将放置组件的空物体自身放入Target List Polic中三个比较重要的设置:Height Adjust SettingsSnap To Nearest Floor:设置传送后位置是否漂浮在空中传送后检测该位置是否有网格碰撞体如果只是空物体的话就向下寻找最近的物体Custom Raycast某个层的指定射线。Layers To Ignore:限制不可升降传送的物体标签008_Controller_UsingAGrabbedObject同006为VRTK_interactable Obiect组件的拓展在拓展脚本中输入指定的动作然后给物体添加VRTK_Fixed Joint Grab Attach和VRTK_Swap Controller Grab Action组件这样左键可以将物体抓起来假如拓展脚本中的动作是让物体旋转右键按下则会让物体旋转将两个组件挂好后就将物体本身挂在拓展脚本的Grab Attach Mechanic Script和Secondary Grab Action Script处实际意义是将两个组件挂上去009_Controller_BezierPointer抛物线传送具体操作在直线传送的基础上将直线射线的渲染修改成曲线贝塞尔曲线的渲染方式就行其他的不变010_CameraRig_TerrainTeleporting复杂地形的传送与009不同的是创建了一个复杂地形出来然后可以进行复杂地形的抛物线传送011_Camera_HeadSetCollisionFading撞墙的时候会黑屏出墙的范围时屏幕恢复在001案例将头显设置好后将4个组件挂载在空物体上在Target List Radius上将自身挂上去就可以出现效果了Element是忽略碰撞的物体的标签012_Controller_PointerWithAreaCollision限制传送位置有物体的地方不可传送在贝塞尔曲线碰到墙壁时射线会变成红色不可传送需要在设置好贝塞尔曲线传送的时候在手柄上添加一个组件然后将组件挂在贝塞尔曲线的渲染上如图VRTK_Play Area Cursor是新挂上去的组件然后需要在设置传送的空物体上多挂载一个组件VRTK_HeadsetCollision挂载后会自动出现一个VRTK_HeadsetFade组件依赖关系然后根据下图调整参数即可013_Controller_UsingAndGrabbingMultipleObjects抓取的拓展设置的区别可以设置为按键持续按下抓取或者按一下抓取再按一下停止抓取如008项目的设置后可以在拓展方法中调整参数设置是否需要持续按下抓取Hold Button To Grab是否需要持续按下抓取Hold Button To Use 是否需要持续按住按键使物体出现动画014_Controller_SnappingObjectsOnGrab抓取物体位置以及链接物体方式我们可以设置抓取物体时指定抓取的对象以及方向如抓取剑的时候抓取剑柄并且默认向上具体操作在基础抓取剑的基础上增添一个设置抓取位置的组件VRTK_Fixed Joint Grab Attch组件Precision Grab是否使用指定抓取下面两个设置分别是指定左手抓取的部件以及右手抓取的部件上面的这种抓取的与手柄的链接方式属于吸附性链接如果发生碰撞就会掉下面介绍一种新的链接方式子物体链接手柄抓住后会将被抓取的物体变为手柄的子物体具体操作将VRTK_Fixed Joint Grab Attch替换为VRTK_Child of Conteroller Grab Attach后操作如上015_Controller_TouchpadAxisControl在手柄处创建一个脚本监听按键状态然后在游戏物体上方式一个脚本有各种动作方法通过获取到游戏物体来使按键发生动作时调用物体上挂载脚本的方法达到控制物体运动的目的016_Controller_HapticRumble手柄震动手柄震动由方法调用当发生碰撞或检测按下按键时调用特点的方法来使手柄震动调用VRTK_ControllerHaptics 类的静态方法017_CameraRig_TouchpadWalking通过触摸板移动我们需要通过触摸板移动就需要给手柄物体挂上监测触摸板的组件以及确定根据触摸板移动方式的组件具体操作首先我们需要给手柄物体挂上检测触摸板的组件VRTK_Touchpad Control然后需要在空物体上挂通过触摸板移动的组件挂在哪个空物体上都行但是建议在对应的手柄下新建一个空物体挂上去手柄的移动方式你分为4种组件VRTK_SlideObjectControlAction → 以滑动的方式移动物体在本场景就是通过触摸手柄圆盘来实现人物平滑移动。VRTK_WarpObjectControlAction → 它给人的感受就是通过触摸手柄圆盘向一个方向瞬间传送一小段距离在视野中会有突然眼前一黑的传送效果。VRTK_RotateObjectControlAction → 通过触摸手柄圆盘来实现平滑旋转。VRTK_SnapRotateObjectControlAction →通过触摸手柄圆盘向一个方向瞬间旋转一个角度。VRTK官方给我们的场景里面提供了很多种方案可以使用我们使用其中一种来讲参数在第二排的框中将手柄物体放进去在第三排设置该方式是x轴移动还是y轴移动018_CameraRig_FramesPerSecondCounter场景帧数显示具体操作在资源池中有个预制体将他拖入场景就行019_Controller_InteractingWithPointer射线与物体交互按照前面的交互方式将检测按键以及物体的交互方式抓取物体拓展脚本写好后调整拓展脚本的设置将这里第一个设置以及最后一个设置勾选上后射线射中物体产生的效果同按键触发交互一样射线的原理是检测到射线后将交互脚本调用出来将确认使用的勾打上020_CameraRig_MeshTeleporting网格传送参照之前高低传送同样的设置在高低不平的网格上也可以进行传送021_Controller_GrabbingObjectsWithJointsVRTK的多种抓取机制VRTK_CustomJointGrabAttach自定义关节抓取需要自己添加铰链关节组件抓链条VRTK_FixedJointGrabAttach固定关节抓取。抓取的时候生成FixedJoint组件轻吸附VRTK_SpringJointGrabAttach弹性关节抓取。抓取的时候生成SpringJoint组件重吸附像拉了一根皮筋拉到一定程度会断掉VRTK_TrackObjectGrabAttach统一物理系统跟踪控制器抓取的时候不会生成铰链关节组件应该是控制刚体的属性设置。VRTK_ChildofControllerGrabAttach抓取后会直接将操作物体设置为手柄的子物体。普通吸附VRTK_MoveTransformGrabAttach可以设置xyz的限制抓取物体的时候只能在这个范围移动如果给带有有此组件的物体添加刚体抓取的时候会将iskinematic设置为true抓取结束为fasle 。这个可以用于手柄拖动物体。022_Controller_CustomBezierPointer贝塞尔曲线特效顾名思义就是给为贝塞尔曲线加上特效具体操作在渲染贝塞尔曲线的组件中将官方给出的特效预制体放入Custom Tracer以及Custom CurSor023_Controller_ChildOfControllerOnGrab本场景重点演示的是子物体抓取的方式也就是将物体抓取后会默认变成手柄的子物体不会被碰撞掉用于需要强抓取的时候比如场景中的射箭场景子物体抓取的实现是在被抓去物体身上添加可以抓取组件的同时添加子物体抓取方式的组件也就是下面两个组件添加完ChildOf Controller后就可以实现子物体抓取了024_CameraRig_ExcludeTeleportLocations添加组件根据标签限制传送物体添加一个空物体在下面挂载一个VRTK——Policy List脚本输入不可传送物体的标签然后将空物体挂到传送组件的Target List Policy位置上检测不可传送标签上面是传送组件下面是检测不可传送物体标签组件025_Controls_Overview功能插件如滑动按钮等等VRTK_Slider滑动组件Default Events给滑动事件设置监听的函数Interact Without Grab如果勾选当被抓取时不能使用滑块Connected To滑动条将会跟着这个物体移动一般不设置Direction设定方向选Autodetect即可Minimun Limit最小数值时滑块的位置Maximum Limit最大数值时滑块的位置Minimum Value滑动条的最小数值Maximum Valus滑动条的最大数值Step Size滑块滑动的增量值Snap To Step当释放滑块时会提前到达附件的一个值和摩擦力有关Released Firction滑块释放后的摩擦力VRTK_Konb旋钮属性与滑动组件相同VRTK_Lever拉杆组件VRTK_Door开门组件Open Inward这个门能否向内打开Open OutWard能否向外打开Min Snap Close如果打开的程度小于这个百分比门将自动关闭Released Friction释放后的摩擦力Grabbed Friction抓取的摩擦力Handle Interactable Only如果勾选只有门把手部分可以打开门VRTK_Wheel方向盘组件Grab Type抓取方式TrackObject转盘会根据手柄位置转动RotatorTrack需要手柄抓住转盘才能转动Locked At Limits限制转盘的转动角度不能超过最大值VRTK_Button按钮组件Activation Distance激活按钮的最远距离Button Strength按下按钮的强度在启动工程的时候会伴生一个VRTK_Button_Unity Events监听脚本需要创建一个新的脚本026_Controller_ForceHoldObject工程开始时手上就有抓取的物体并且不掉落在手柄物体上放置一个组件用来实现开局抓取在Object To Grab上将需要抓取的物体放上去然后调整被抓去物体身上的被抓取组件将物体自身放入Grab Attach Mechanic Script中可以调整Valid DropNo Drop代表不能被放下027_CameraRig_TeleportByModelVillage使用与模型交互的方式进行传送由于与模型交互后传送的是一个新的位置所以高度可能会发生变化在空物体下就需要高度传送了手柄需要与控制传送的物体进行交互那么就需要在手柄上添加一个交互碰撞交互组件和按键检测组件最后在做交互的物体上挂载一个官方脚本Model Village _Tleport Location在Destination中放置传送后的位置028_CameraRig_RoomExtender游玩区域的拓展通过现实中人的移动来使虚拟世界中的人移动可用性不高不建议使用主要涉及3个组件挂载手柄上的挂在空物体上的029_Controller_Tooltips给手柄和场景中的物体添加漂浮标签首先给手柄添加说明标签需要给手柄添加标签预制体还有一个检测头显看向哪个手柄的组件头显看着哪个手柄就会出现标签预制体ControllerTooltips添加在手柄物体的子物体上组件:VRTK_Headset Controller Aware添加在额为的空物体上然后是物体标签的设置将预制体ObjectTooltip挂在物体标签的下方调整大小和位置放在好看的地方预制体重要参数Display Text标签文本Draw Line To挂载的物体下面的三个颜色设置分别为文字颜色背景板颜色连接线颜色030_Controls_RadialTouchpadMenu手柄圆盘上的虚拟菜单按钮与029一样将预制体挂上手柄就行031_CameraRig_HeadsetGazePointer根据头部发射射线传送需要完成几件事情确认发射射线的位置实例化射线创建一个空物体在空物体上放置一个组件将该物体变为头显的子物体Sdk Object:设置为谁的子物体然后放置射线以及射线渲染组件再放置一个专门的实例化传送标志的组件在放置一个确认位置的组件Game Object To Follw放置的是确认射线发射位置的物体也就是挂载了确认位置组件的物体Game Object To Change放置的是自身发射射线的各个组件也就是挂在了发射射线的组件032_Controller_CustomControllerModel手部模型替换手部模型替换步骤VRTK_Interact Touch碰撞体替换VRTK_Interact GrabContorller Events刚体替换模型要求坐标轴方向正确有一个空物体用来放置模型整体的碰撞体如果模型不规则则可以放置两个或多个碰撞体有一个空物体用来放置刚体组件这个两个空物体必须都在模型主物体下为子物体033_CameraRig_TeleportingInNavMesh在导航网格上限制瞬移距离在瞬移的组件里面设置设置Nav Mesh Limit Distance的值如果为0那么代表不做限制限制导航网格的位移距离前提是有导航网格034_Controls_InteractingWithUnityUIUI的交互想要用vr手柄与UI交互首先需要将UI的渲染方式修改为Word Space就可以在场景中漂浮了然后在UI上添加VETK_UICanvas组件然后在与UI交互的物体手柄头显上添加VRTK_UI pointer组件035_Controller_OpacityAndHighlighting手柄高亮组件添加VRTK_Controller Highlighter组件以及VRTK_Outline Object Copy Highlighter后就可以通过脚本的代码获取控制高亮了这里只做组件以及工程解释不教具体代码书写036_Controller_CustomCompoundPointer贝塞尔曲线的另一种特效设置与项目022相同不过多了两种预制体1传送线的样式2传送目标点的样式3可传送时显示的特效4不可传送时显示的特效037_CameraRig_ClimbingFalling攀爬给作为攀爬点的物体添加VRTK_Cimbable Grab Attach攀爬组件然后将攀爬组件的物体拖入抓取交互组件的Grab Attach Mechanic Script 变量可以再添加一个VRTK_player Climb组件处理攀爬和自然掉落的情况038_CameraRig_DashTeleport另一种传送方式快速移动将传送的组件替换为可以设置Blink Transition Speed眨眼传送动画时间将动画设置为0就不会出现眨眼动画向前快速移动的动画就会明显一些039_CameraRig_AdaptiveQuality场景视觉优化挂载一个组件作用就是牺牲性能换取画质040_Controls_Panel_Menu物体UI显示在游戏进行的时候游戏中的物体通常会有多种信息而物体的信息又不能直接显示出来我们可以在按下特定按键的时候显示特点的UI首先在物体上添加VRTK_PanelMenuItemController组件用来调用子物体预制体UI然后将预制体UI拖入下方,在预制体的主空物体上放置了脚本用来调用显示不同的UI在脚本中放入4个UI分别对应上下左右按键这样就可以根据按键调用物体不同的UI了041_Controller_ObjectSnappingToDropZones放置指定型状物体在场景中放置预制体SnapDropZone这是预制体的构成也可以创建一个空物体将这些东西放上去效果一样的将指定的物体制作成预制体放入Highlight Object Prefab其他设置Snap Type存放采用的方式Use_Kinematic运动学方式物体放上去后不会被移动Use_Joint关节方式物体放上去之后可以被挤开使用这种方式需要添加关节组件Use_Panenting父子关系物体放上去后会被缩小Valid Object List Policy这边可以进一步过滤是否可以存放的物体042_CameraRig_MoveInPlace模拟行走的一种方式人在现实中行走虚拟世界中也会行走添加这个组件后现实中人原地踏步也可以在虚拟世界中移动043_Controller_SecondaryControllerActions双手操作物体的两种情况1.双手拉伸放大缩小物体给物体添加VRTK_AxisScaleGrabAction组件2.长物体需要双手拿起为了美观添加VRTK_ControlDirectionGrabAction组件044_CameraRig_RestrictedTeleportZones指定传送点指定可以传送的点首先需要给传送的点加限制条件首先在传送组件上放置VRTK_PolicyList脚本限定传送点VRTK_PolicyList的两个重要设置补充Operation改变限制方式只可传送或只不可传送Check Raycast检测限制方式包括层标签脚本名称由于我们需要在物体上放置一个传送类型的脚本所以这里我们干脆选择通过脚本名称然后创建一个物体作为射线检测传送的点然后在物体上放置VRTK_DestinationPoint脚本这个脚本不影响本身的传送但是可以增加传送的功能参数Enable Teleport是否可以传送Default Cusor Object传送点默认的样式Hover Cursor Object传送点可传送时的样式Locked Cursor Object不可传送时的样式Snap To Point快速到达Hide Point Cursor On在传送过去的时候隐藏传送点————————————————————————以上就是VRTK44个场景的的全部详解感谢观看
RELATED

相关推荐

eslav_PP-OCRv5_mobile_rec_onnx性能优化:提升OCR识别速度的7个技巧

eslav_PP-OCRv5_mobile_rec_onnx性能优化:提升OCR识别速度的7个技巧

eslav_PP-OCRv5_mobile_rec_onnx性能优化:提升OCR识别速度的7个技巧 eslav_PP-OCRv5_mobile_rec_onnx是飞桨PaddlePaddle推出的一款高性能移动端OCR识别模型,通过ONNX格式实现了跨平台部署能力。本文将分享7个实用技巧,帮助你显著提升该模型的…

📅 2026/11/3 1:20:35
vcpkg环境配置

vcpkg环境配置

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/3 1:15:35
【大模型应用开发极简入门】其他OpenAI API和功能:embedding(文本之间的向量相关性)、Moderation(内容审核模型)、Image generation

【大模型应用开发极简入门】其他OpenAI API和功能:embedding(文本之间的向量相关性)、Moderation(内容审核模型)、Image generation

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📅 2026/11/3 1:15:35
MORE NEWS

更多资讯

📰

深入理解Seata:微服务分布式事务解决方案

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

skills 安全与部署最佳实践:如何做到 API Key 不入库、0600 权限与独立虚拟环境(含完整避坑清单)

【免费下载链接】skills 开源了Codex Skills等集合,大部分是自己实际需要搞得,需要的自取。欢迎star 项目地址: https://gitcode.com/gh_mirrors/skills24/skills 点击查看 免费下载 skills 是一个 Claude Code Skills 集合,包含…

📰

Delphi VCL程序最小化隐藏到托盘

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

模型说“我不能“?用 dsh-purge 分清模型拒绝和宿主拦截

模型说"我不能"?用 dsh-purge 分清模型拒绝和宿主拦截 【免费下载链接】dsh-purge DeepSeek Harness 破甲:让所有模型都能破甲,不同模型可换不同提示词;默认提示词面向国模「小码酱」。Jailbreak for every model — sw…

📰

【72】水上垃圾数据集(有v5/v8模型)/YOLO水上垃圾检测

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

📰

Harness Engineering(驾驭工程)初识

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬