VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

时间:2022-11-21 16:27:39

这个教程我们学习如何实现载具的驾驶

一、准备工作

  1 最简单的载具驾驶需要至少两个元素,一是需要一个载具,二是需要一个前进的按钮(这里我们只做前进功能),为了直观的能感受到载具的移动,我们还得创造一个参照物。

  2 根据前面的教程,新建一个project,导入SDK,

  3 模型素材(碎石空间.rar)可以在Q群581425491群文件中下载。

  4 将碎石空间导入项目(注意取消.cs和.js文件的勾选),将我们将要驾驶的悬浮岛屿和参照物拖入中间的scene窗口中。A作为要驾驶的岛屿,B作为参照物。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

  5 在右侧的属性面板中将两个岛屿都放大,A岛屿放大20倍,B岛屿放大50倍

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

  6 将VRCWorld放到A上面去,注意位置。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

二、设置载具

  1 给载具添加物理碰撞

    玩家要站在这个岛上就需要它有物理碰撞的属性,否则玩家会穿过岛屿掉到空中。

    所以选中A,右侧属性面板中“Add Component>Physics>Box Collider”,添加一个简单的box碰撞属性,使用Edit Collider调节好碰撞的范围。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

  2 设置载具为刚体

    移动这个岛屿的原理就是给它添加某个方向上的力,所以要给岛屿添加刚体的属性否则不能受力。右侧属性面板中“Add Component>Physics>Rigidbody”。添加刚体属性后需要将岛屿Y轴上的受力冻结住,因为刚体会受到重力,我们没有添加地面,所以岛屿受到重力后就会掉下去,所以我们冻结住Y轴上的受力岛屿就可以浮空了。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

三、设置操作按钮

  设置好载具后,我们需要一个按钮来控制载具的前进,原理是点击一下按钮就给岛屿Z轴上一个力推动岛屿向Z方向移动。

  1 添加一个按钮

    我们在左侧的面板中“右键鼠标>3D Object>Cube”创建一个方块,移动这个方块使其位于岛屿的上方,我们就把这个方块作为操作的按钮。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

  2 给按钮添加触摸事件

    右侧属性面板“Add Component>Scripts>VRCSDK2>VRC_Trigger”,添加一个trigger事件。接着在右侧的VRC_Trigger属性中添加一个“OnInteract”

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

    在Actions中添加“Basic Events>AddForce”,接着选中AddForce,给这个Action添加一个接收的目标(Receivers),很明显,现在只有添加了刚体属性的岛屿能接收这个力。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

    最后根据实际情况,设置下力度,这里我们是需要向Z轴施加力。

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

四、测试

  准备就绪,按之前说的方法测试一下吧,进游戏里触摸一下方块就可以了。需要注意的是因为没有空气阻力所以施加一个力后小岛会匀速向Z方向一直移动不会停下来的。如果要设置阻力的话可以设置小岛Rigidbody中的Drag属性。快去试试看吧。

更多的官方示例可以在VRCSDK>Examples>Scenes里找到

VRChat简易教程4-使用VRC的接口实现物体的移动(VRC的action和trigger接口)

欢迎加入VRChat交流Q群:

581425491