VRTK_v4 直播教程笔记(3)物体吸附,固定传送点式位移和 VRTK的RuleSystem

1. Snap zone:物体吸附

有时候想把某个物体能自动吸附到一个位置上时使用。导入Tilia Interactions SnapZone Unity这个包。
向场景里添加这个物体
在这里插入图片描述

SnapZone的配置:
在这里插入图片描述
在这里插入图片描述

2. Rule System

如果只是这么设置SnapZone的话,任何可交互物体都会被识别到,但有的时候我们只想snap特定物体。所以需要一个规则来判断哪些物体可以被Snap。这时就需要用到VRTK的Rule System。
一个Rule脚本只要实现IRule接口就可以用,观察IRule,发现只要实现一个方法就行。

namespace Zinnia.Rule
{
    /// <summary>
    /// Allows determining whether an object is accepted.
    /// </summary>
    public interface IRule
    {
        /// <summary>
        /// Determines whether an object is accepted.
        /// </summary>
        /// <param name="target">The object to check.</param>
        /// <returns><see langword="true"/> if <paramref name="target"/> is accepted, <see langword="false"/> otherwise.</returns>
        bool Accepts(object target);
    }
}

当然VRTK也准备了很多现成的Rule。比如当前这个需求可以用Tag来识别,就可以往场景里添加一个AnyTagRule物体。
在这里插入图片描述
选择AnyTagRule后生成。
在这里插入图片描述
在这里插入图片描述

4. 固定传送点式位移

当我们想让玩家只位移到固定位置时,可以使用这种传送方式。导入Tilia Locomotors TeleportTargets Unity。
向场景里添加要移动的点,并将点移动到想要传送的位置。
在这里插入图片描述
之后创建一个新的空物体,添加SpatialTargetDispatcher脚本。
在这里插入图片描述
之后在Pointer里将Enter,Exited和Select的回调加上即可。
在这里插入图片描述
但是这样的话变成即可任意移动,又可吸附到固定点移动。这时TeleportTargets只是一个吸附Pointer选择的作用了。如果只允许固定点瞬移的话,先把之前在pointer注册的Teleport方法给去掉。之后在TeleportTarget里的Activated里注册Teleport方法。
在这里插入图片描述
Teleport Target Setting:

  1. 我们可以通过设置Target override的位置来控制瞬移位置的偏移。

5. 一些Bug

i: 把头偏向桌子侧,人就会teleport到桌子上面
这是在偏头时由于Teleport自动传到桌子上了。解决方法之一是不然teleport传送到没打floor Tag的物体上。同snapZone做的一样。我们新建一个Tag和AllTagRule。
将Rule塞到Teleporter的Target Validity
在这里插入图片描述
我们发现虽然不能传送到没FloorTag的物体上,但选择还是绿色的。所以也要将规则应用到pointer里。
在这里插入图片描述
但这时发现传送点选择不了了,就需要给传送点的Collider加Floor Tag
在这里插入图片描述
2. 在Teleport时会莫名转向
是因为在设置了Apply Destination Rotation
在这里插入图片描述
把这勾去掉即可。

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值