<VRTK学习三> 拿取使用物体

一、拿取物体

要实现拿取的功能,首先给要拿取的物体添加碰撞器,VRTK_InteractableObject脚本,



Disable When Idle: 如果该检查被选中,那么当对象没有与之交互时,将禁用interactable对象脚本。这将消除相互作用的对象对每个帧的调用的潜在数量。

Touch Hightlight Color:高光,该颜色将会覆盖全局的颜色(比如在VRTK_InteractTouch脚本上的修改)。

Allowed Touch Controllers: 决定哪个控制器可以发起接触。

Ignored Colliders:当被接触时,在该物体上的一组碰撞器被忽略。

Is Grabble:决定是否可以被抓取。

HoldButtonToGrab:选中后抓取按键需要一直按着,不选的话按一下物体在手上,再按一下就掉了

Stay Grabbed On Teleport:选中后即使瞬移,物体仍然会在手上。

Valid Drop:决定了在什么环境下抓住的物体可以被丢下。

Grab Override Button:覆盖全局的抓取按键

Allowed Grab Controllers:决定哪个控制器可以被抓取

Grab Attach Mechanic Script:这个决定了被抓去的物体将以什么样的形式被抓取,如果未曾设置相关参数,

那么第一个抓取脚本将会被使用,如果没有,则使用刚性连接脚本将会在运行时自动产生

Sencondary Grab Action Script:当另外一只手柄控制器尝试抓住该物体的时候,采取什么操作。如果未曾设置相关参数,

这个脚本将会被使用,如果没有,将没有任何反应。

Use Only if Grabbed:如果选中的话,使用只能用在物体当前被抓取时。

Pointer Activates(激活) Use Action:当射线点击到相互作用的物体上,该物体若是没有选择 Hold Button To Use 那么Using方法将会被使用,

且指针无法激活时也能被使用。如果使用这个设置,那么这个世界指针将不会抛出目标集事件,因为它可以防止在使用指针的对象时发生不需要的远程传送。



当我们需要自定义功能的时候,我们就要开始自己写脚本了,我们可以继承这个类,添加自己的功能

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using VRTK;


public class interacted : VRTK_InteractableObject
{


    //开始接触
    public override void StartTouching(GameObject currentTouchingObject)
    {
        base.StartTouching(currentTouchingObject);
    }
    //停止接触
    public override void StopTouching(GameObject currentTouchingObject)
    {
        base.StopTouching(currentTouchingObject);
    }
    //抓取
    public override void Grabbed(GameObject currentTouchingObject)
    {
        base.Grabbed(currentTouchingObject);
    }
    //放下物体
    public override void Ungrabbed(GameObject currentTouchingObject)
    {
        base.Ungrabbed(currentTouchingObject);
    }
    //开始使用
    public override void StartUsing(GameObject currentTouchingObject)
    {
        base.StartUsing(currentTouchingObject);
    }
    //停止使用
    public override void StopUsing(GameObject currentTouchingObject)
    {
        base.StopUsing(currentTouchingObject);
    }
    






}

最后在控制器脚本上添加VRTK_Interact Touch,VRTK_Interact Use,VRTK_Interact Grab脚本。


VRTK_Interact Controller Appearance  脚本,,可在控制器和物体交互时进行隐藏。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值