![](https://img-blog.csdnimg.cn/20201014180756926.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unity-VRTK插件篇
ChengDengKe
一名热衷游戏的程序猴...
展开
-
VRTK_AxisScaleGrabAction (通过两个手柄对物体进行缩放)
UngrabDistance:两个手柄距离多远之后将会断掉。Look Axis:是否要锁定轴。(类似于只缩放固定的一些轴。)UniformScaling:如果勾选将会对物体得三个轴同时缩放。有些红色的选项已经过时了。注意:因为这里需要两个手柄去操作一个物体,就没用手柄交替抓取的脚本了。这里需要制定VRTK_InteractableObject中的SecondaryGrabActionScript....原创 2020-06-28 23:31:26 · 487 阅读 · 0 评论 -
VRTK_InteractObjectAppearance(修改交互对象的外观、显示隐藏手柄)
objectToAffect:“要影响外观的游戏对象。”如果为空,则将使用交互对象(通常是控制器)。objectToMonitor:要监视交互事件的可交互对象(接近触摸/触摸/抓取/使用)。gameObjectActiveByDefault:指定的objectToAffect对象是否可用rendererVisibleByDefault:指定的objectToAffect对象是否渲染.剩下的分别是即将触碰、触碰、抓取、使用时是否隐藏或者渲染交互物体...原创 2020-06-28 23:29:13 · 604 阅读 · 0 评论 -
VRTK_SDKTransfromModify(物体和手柄保持同一个方向位置。)脚本介绍
这个脚本会将target物体和手柄保持同一个方向位置。target:需要匹配的物体。原创 2020-06-28 23:28:50 · 267 阅读 · 0 评论 -
VRTK_InteractNearTouch脚本介绍
挂载到手柄后可调整靠近物体的距离等属性,用于一些需要使用neartouch的脚本配合使用。脚本中有靠近和离开neartouch物体得事件。原创 2020-06-28 23:26:54 · 351 阅读 · 0 评论 -
VRTK_SnapDropZone脚本介绍
highlightObjectPr efab:当放置物体的时候放置区域高亮显示的模型,这里指定需要放置的物体。snapType:将有效的可交互对象放到快照区域中时要应用的快照类型UseKinematic - 将可交互对象rigidbody设置为“iskinematic=true”。UseJoint - 将可交互对象的刚体作为“连接体”附加到关节。UseParenting - 将快照区域设置为可交互对象的父级,并将其刚体设置为“iskinematic=true”。snapDuration:被放置的物原创 2020-06-28 23:25:54 · 972 阅读 · 0 评论 -
VRTK_XXX GrabAttach脚本收集总结(VRTK里的多种抓取机制 )
VRTK_Track ObjectGrabAttach抓取物体使其跟随物体移动,这个脚本配合使用在物理效果下跟随。(VRTK_physics XXX)VRTK_MoveTransformGrabAttach抓取物体使其跟随物体移动,这个脚本配合使用在人造的效果下跟随。(VRTK_Aratificial XXX)Release deceleration damper:释放减速阻尼器。(取消抓取时,物体移动的缓冲,不是立刻停止,会根据施加的力进行缓冲)Reset to orign on Release原创 2020-06-28 23:25:16 · 852 阅读 · 0 评论 -
关于VRTK_Physics xxx和VRTK_Aratificialxxx脚本的区别总结
当前物体如果不需要和其他物体交互可以使用物理效果的脚本时实现(VRTK_Physics),如果需要和其他物体进行交互,使用物理效果的组件可能会出现与其他带有物理效果的物体冲突。所以不建议,当然看情况而定。有些人工组件例如VRTK_ArtificialPushushers 效果可能没有物理组件效果好 这个需要按照项目实际情况确定。人工的简单来说就是防止出现意想不到的bug。VRTK_Araificial XXX需要创建空物体套在滑动物体的外面(滑块的位置需要是0,0,0),而且滑动的值如果设置为负值他会.原创 2020-06-28 23:18:49 · 302 阅读 · 0 评论 -
VRTK_PhysicsSilider
实现效果同VRTK_AraificialSilider。(区别在于VRTK_PhysicsSilider是通过unity自带物理效果实现的,而VRTK_AraificialSilider是VRTK自己实现的一套逻辑)这里可以去看看之前写的VRTK_PhysicsSilider脚本介绍。原创 2020-06-28 23:15:40 · 225 阅读 · 0 评论 -
VRTK_AratificialSilider (人工滑动条)
原创 2020-06-28 23:10:49 · 232 阅读 · 0 评论 -
VRTK_ControllerRigidbodyActivator脚本
isenabled:如果选中此选项,碰撞器将在碰撞过程中打开和关闭其刚体。activateinteracttouch:如果选中此选项,则刚性体激活器将激活交互触摸脚本上的刚性体和碰撞器。activatetrackedcollider:如果选中此选项,则刚性体激活器将在控制器跟踪的碰撞器脚本上激活刚性体和碰撞器。...原创 2020-06-27 23:51:55 · 197 阅读 · 0 评论 -
VRTK_Physics Pusher (物理推进器,推动效果使用unity自带物理效果)
Operate Axis:按照哪个轴进行推动。Ignore Collisions with :忽略的碰撞。例如桌子上有个盒子,盒子里有个方块,现在需要用手柄推动方块,不想要手柄与桌子或者盒子进行碰撞,就可以在这里设置忽略碰撞。pressed distance:按压的距离。stay Pressed :是否保持按压。(有的时候按压按钮不需要按钮进行回弹,就可以勾选上这个选项。)minMaxLimitThreshold :推动器当前沿‘操作轴’的标准化位置必须在推动器的最小和最大限制内..原创 2020-06-27 23:51:05 · 512 阅读 · 0 评论 -
代码切换手柄模型和自定义模型
public class ToggleCustomHands : MonoBehaviour { public VRTK_ControllerEvents leftController; public VRTK_ControllerEvents rightController; public GameObject leftHandAvatar; public GameObject rightHandAvatar; .原创 2020-06-27 23:48:07 · 954 阅读 · 0 评论 -
VRTK_PhysicsRotator
和VRTK_Artifical Pusher效果一样,只不过是VRTK自己实现的一套推进器效果。grabMechanic:操作旋转器时要使用的可交互对象抓取机制的类型。TrackObject - 跟踪对象抓取机制RotatorTrack - 旋转轨道抓取机制...原创 2020-06-27 23:45:46 · 335 阅读 · 0 评论 -
VRTK_Artificial Rotator(人工旋转器)脚本属性详解
Operate Axis:旋转轴,按照物体哪个轴进行旋转。ignoreCollisionsWith:用于忽略碰撞事件的GameObjects集合。excludeColliderCheckOn:确定是否应创建默认Collider时要排除的GameObjects集合。HingePoint:绕着哪个点进行旋转。Angle Limits:角度范围,设置可旋转的最大值或者最小值。MinMaxThresholdAngle:在达到最小或最大角度之前,旋转器旋转可以处于最小或最大角度内的角..原创 2020-06-27 23:44:56 · 857 阅读 · 2 评论 -
VRTK_SwapControllerGrabAction作用
在可交互物体挂上这个脚本后,左右手柄可以交替抓取物体。(前提是必须挂载VRTK_InteractableObject脚本)原创 2020-06-27 23:42:22 · 410 阅读 · 0 评论 -
VRTK_BaseGrabAttach脚本介绍
precisionGrab:如果选中此项,那么当Interact Grab抓取Interactable Object时,它将精确地抓取它并在Interact Touch触摸的Interactable Object上的特定点处拾取它。throwVelocityWithAttachDistance:如果选中,那么当抛出Interactable Object时,Interactable Object的附着点和Interact Grab附加点之间的距离将用于计算更快的投掷速度。onGrabColli..原创 2020-06-27 23:39:36 · 150 阅读 · 0 评论 -
VRTK_InteractableObject脚本属性详解
Disable when Idle:勾选上后运行,默认VRTK_InteractableObject脚本是UnEnable状态,只有当手柄或者射线与其进行交互的时候,脚本才会变成Enable状态。(为了防止当前物体和其他物体进行交互)IsGrabbable:是否能够被抓取。Hold Button To Grab:如果选中此项,则需要持续按住控制器上的抓取按钮以继续抓取。如果取消选中此选项,则抓取按钮会切换抓取操作,只需按一下按钮即可抓取,再按一下钮即可释放。StayGrabbedOnT..原创 2020-06-27 23:38:50 · 1610 阅读 · 0 评论 -
VRTK中代码切换抛物线和直线中的坑
如果手柄上同时挂载直线和抛物线的脚本时,并且需要通过代码去切换直线和抛物线的时候,需要将最开始不使用的脚本UnEnable不然代码初始化的时候会报错。原创 2020-06-27 23:37:47 · 265 阅读 · 0 评论 -
VRTK_BodyPhsics 脚本属性介绍(实现头盔带有物理效果)
(加上这个脚本后,头盔会带有物理效果,这个脚本可挂载在任何地方。)后续攀爬、头部穿墙、位置回弹等效果会需要这个组件原创 2020-06-27 23:34:46 · 692 阅读 · 0 评论 -
VRTK实现瞬移(两种瞬移方式)
一般瞬移是配合抛物线一起使用。(直线移动也行!)实现简单瞬移的两种方式添加脚本VRTK_HeightAdjustTeleport(眨眼渐变瞬移组件)。配合抛物线就可以瞬移了。传送会受到VRTK_Pointer脚本的EnabkeTeleport影响。不勾选瞬移是不起作用的。添加脚本VRTK_DashTeleport脚本(这个脚本瞬移带有位移过程,可能会有用户体验出现头晕)。 Snap to Nearest Floor:勾选的话,瞬移会受到附近平面影响。(类似凹凸不平的地面瞬移时,会有一个根据平面过度原创 2020-06-23 14:33:48 · 2027 阅读 · 1 评论 -
VRTK_BezierPointerRenderer脚本属性详解(抛物线脚本)
(由于大部分属性和直线的一样,这里就不一一列举了!!!)MaximumLength:X代表抛物线离自己的远近,一般用于防止新手用户瞬移时出现跳跃距离过远而产生懵逼的状态。Y代表抛物线的高度,一般给默认设置就行。Tracer Density:密集程度。(拿默认的抛物线来说,这里设置的数量越大,小球的数量就越多。)CursorRadius:cursor的半径。HeightLimitAngle:高度限制角度。(手柄向上时,抛物线的角度。)Curve offset:射线的偏移。RescaleTrace原创 2020-06-23 12:37:16 · 687 阅读 · 0 评论 -
VRTK射线和UGUI进行交互
手柄上挂载VRTK_UIPointer脚本.需要进行交互的画布Canvas上挂载脚本VRTK_UICanvas脚本.VRTK_UIPointer脚本属性详解Activation Button :激活按钮。Activation Mode:激活模式,一直激活,按下激活,开关激活。Selection Button:选择按钮。ClickMethod(点击方法):点击按下,抬起。Attempt Click On Deactivate:尝试点击关闭。click after hover durati.原创 2020-06-23 12:32:21 · 1315 阅读 · 0 评论 -
VRTK射线射中物体给物体描边
:将需要进行描边的物体上加上VRTK_OutlineObjectCopyHighlighter组件。创建射线监听脚本. public VRTK_Pointer leftContrlPointer;//拿到pointe组件//注册射线事件 protected virtual void OnEnable() { pointer = (pointer == null ? GetComponent<VRTK_DestinationMarker>().原创 2020-06-23 12:25:41 · 664 阅读 · 0 评论 -
VRTK_StraightPointerRenderer脚本属性详解
ValidCollisionColor:射线射中时的颜色。InvalidCollisionColor:射线未射中时的颜色(或者射线射中忽略物体时的颜色)。TracerVisibility:(射线分为两个部分 Tracer为线,Cursor为射线末端的小球。)有三个选项,可以受射线激活而显示,也可以一直显示或者一直关闭显示。CursorVisibility(光标的可见性):同TracerVisibility。(射线分为两个部分 Tracer为线,Cursor为射线末端的小球。)有三个选项,可以受射线激.原创 2020-06-23 12:22:30 · 695 阅读 · 0 评论 -
VRTK_Pointer脚本属性详解
:EnableTeleport:是否启用瞬移,勾选的话还是不能瞬移的。还需要其他组件进行瞬移,后续将会补充。TargetListPolicy:用来忽略或者包含指定标签、层、脚本等物体。ActivationButton:用来激活射线的按钮,例如圆盘按下、圆盘触摸等。holdbuttonToActivate:勾选为手一直触摸或者按下指定激发射线按键时激活射线,不勾选则按下激活、再次按下取消激活。(触摸同样的效果)ActivateOnEnable:勾选上则为程序运行时射线就被激活。Activation.原创 2020-06-23 12:21:44 · 1133 阅读 · 0 评论 -
VRTK_PolicyList脚本属性详解
创建空物体PolicyList并添加脚本VRTK_PolicyList(可以选择通过标签 选择 或者层、脚本等进行忽略或者包含)这里后续会用在很多地方,类似于场景中需要和射线交互的物体、能进行移动的物体等等。...原创 2020-06-23 12:16:27 · 711 阅读 · 0 评论 -
VRTK按键触发事件整理归纳(适用于SteamVR)
扳机键触发事件· TriggerPressed - 当trigger被扣下一半左右时发送事件.· TriggerReleased - 当Trigger从扣下一半的状态释放后发送事件.· TriggerTouchStart - 当trigger被扣下一点点时发送事件.· TriggerTouchEnd - 当trigger完全没有被扣下时发送事件.· TriggerHairlineStart - 当trigger扣下的程度超过了当前的hairline阈值时发送事件.· TriggerHairlin原创 2020-06-23 12:11:59 · 4035 阅读 · 1 评论 -
自己封装 一遍VRTK流程
创建空物体 VRTK_SDK Manager,位置reset保证位置角度为0,0,0。挂载脚本 VRTK_SDK Manager。在 VRTK_SDK Manager物体下创建物体SDK Setup,并挂载脚本 VRTK_SDK Setup。选中之后会自动绑定预制件 如果没有可以点击 populate Now 绑定。选择VRTK_SDK Manager物体脚本上的AutoPopulate。创建手柄输出控制。...原创 2020-06-23 11:58:22 · 251 阅读 · 0 评论