<VRTK学习三> 拿取使用物体
来源:互联网 发布:网络布线收费标准 编辑:程序博客网 时间:2024/06/07 11:26
一、拿取物体
要实现拿取的功能,首先给要拿取的物体添加碰撞器,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 脚本,,可在控制器和物体交互时进行隐藏。
- <VRTK学习三> 拿取使用物体
- VRTK关节物体交互
- <VRTK学习一> 初识vrtk,如何在自己的项目中使用vrtk
- <VRTK学习二>vrtk ControllerEvent
- 使用VRTK在场景中实现传送 (三)
- HTC 强制握住物体 (VRTK)
- VRTK学习记录2——拿起和使用物品
- VRTK使用总结
- [HTC Vive + Unity开发]——VRTK的研究——用手柄旋转物体(使用VRTK_Knob脚本)
- VRTK基于SteamVR学习笔记
- VRTK: 使用触摸板移动
- unity VRTK拿起物体设置成碰撞物体的子物体
- VRTK学习记录1——使用NavMesh限制移动区域
- VR开发之VRTK插件使用(一)
- libgdx 学习笔记(三)四个方向键控制物体移动
- Direct3D学习手记三:绘制彩色3D物体
- DirectX 学习三:抽取要渲染的物体
- 深度学习物体检测(三)——FAST-RCNN
- Java笔记11
- [学习笔记][Java编程思想]第9章:接口
- POJ-1028 Web Navigation(STL)
- 修改K8S中NodePort方式暴露服务的端口的默认范围(30000-32767)的方法
- OpenStack公共组件oslo之十三——oslo.cache
- <VRTK学习三> 拿取使用物体
- 《集合》
- * 期末考试 编程题#4:计算整数平方和(Coursera 程序设计与算法 专项课程3 C++程序设计 郭炜、刘家瑛;OpenJudge)
- 谈一谈自己对依赖、关联、聚合和组合之间区别的理解
- poj 3781
- 类加载器
- java中AWT和SWing的区别与联系
- [学习笔记][Java编程思想]第10章:内部类
- C数组解决魔术师发牌问题