Use两种实现方式:

1、使用手柄点击,按下Trigger键触发

2、使用激光指针悬停在物体上,按下Trigger键

2019.06.26更新:

写了一套逻辑,只要勾选isHTC,自动帮你把UI从PC版转成VR版。取消勾选,程序回到PC版。

例子:实现手柄射线与物体的交互

1、VRTK的初步设置

2、给要捡起的cube进行配置(2-4完成射线触碰物体变色,实现选中状态)(5也要做第4步)(红色必做!)

3、给手柄控制器进行配置,完成射线选中效果。

a、添加VRTK_Interact Use

b、勾选VRTK_Pointer的Interact With Object。实现射线与物体的交互,可出现选中效果。

若不勾选,则只实现手柄触碰到之后才交互。

4、添加VRTK_InteractUse_UnityEvents

5、给要交互的物体添加Collider,挂载自己定义的事件的新脚本

注意:因为4步以前我们添加了射线击中变黄事件,自动添加了VRTK_InteractableObject组件,而我们下面方法继承了VRTK_InteractableObject该组件,因此一定要先删除原先添加的组件!

我们也可删掉通过自动配置自动添加的组件,直接添加我们写的代码,这一个脚本也能实现功能!

  1. using UnityEngine;
  2. using UnityEngine.UI;
  3. using VRTK;
  4. public class Skode_BtnSelect : VRTK_InteractableObject
  5. {
  6. // 开始使用:默认扣动扳机键
  7. public override void StartUsing(GameObject currentUsingObject)
  8. {
  9. base.StartUsing(currentUsingObject);
  10. #region 自定义
  11. var value = GetComponent<Button>().onClick;
  12. if (value != null)
  13. {
  14. value.Invoke();
  15. }
  16. #endregion
  17. }
  18. // 停止使用:默认松开扳机键
  19. public override void StopUsing(GameObject previousUsingObject)
  20. {
  21. base.StopUsing(previousUsingObject);
  22. #region 自定义
  23. #endregion
  24. }
  25. }

Hold Button To Use:如果勾选,控制器上的使用(use)按钮需要被持续按下来保持使用/(“需要长时间按下,来触发Use事件”——来自某牛)

Use Only if Grabbed:当被抓取的时候,属性才能被使用

Pointer Activates Use Action:(“只要激光击中物体,不需要Trigger的按下,就是可以使用的。不勾选,则只有按下时,才可激活Use事件”——来自某牛)/(勾选该选项,不勾选Hold Button To Use,当指针在对象上的时候就会运行对象的StartUsing方法)

关于横线删除:网上博客都说的是删除文字内容,但我实际测试结果是:

1、同时勾选HoldButtonToUse和PointerActivatesUseAction,只要当激光射线第一次指到该物体时,立刻触发且仅触发一次use事件,不需长按,没有重复触发。

2、只勾选HoldButtonToUse,并不需要长按Trigger,还是只要按下就触发

希望有了解的朋友确认问题。

需要注意的是:右手手柄按下扳机键点击物体想触发Use事件,要在此时关闭瞬移效果

原先:右手手柄按下圆盘键激光击中物体,按下扳机键,触发Use事件。当松开圆盘键时,还会传送到物体位置

希望:松开圆盘键后,不要传送到物体位置。

关闭方法0:

设置传送限制规则。

关闭方法1:

右手手柄VRTK_InteractUse_UnityEvents——Toggle为false

激光与UI的交互:

单纯实现与UI Collider的交互,直接用上面的“与物体的交互”就OK了,但要实现UI Scroll View的滑动效果,则还要:
1、先完成与物体交互手柄的操作步骤,UI上可不添加Interactable

2、在想要交互的手柄上,比如RightController,添加VRTK_UIPointerVRTK_ControllerUIPointerEvents_ListenerExample脚本。

3、在想要交互的Canvas上挂载VRTK_UICanvas组件

这时我们会发现我们虽然能实现效果,但是射线穿透UI了。这是因为虽然VRTK_UICanvas在Canvas上自动生成了Boxcollider,但是我们Canvas里面的内容不和Canvas在一个平面。这导致射线检测不到碰撞器,穿透了。所以我们:

要不然就把下面的物体放在和Canvas同一个平面上

要不然注释掉给canvas添加collider的代码,自己给不同位置的UI添加collider

激光指针抓取物体

实现效果:按下圆盘键触发激光,按下Grab键将物体吸附在激光顶端。(不勾选,使用Use方法抓取物体,是使用的Trigger键)

注意:你要用自己继承了VRTK_InteractableObject的脚本,记得配置如下选项(用VRTK配置生成的则自动配置好了)

1、勾选右手VRTK_Pointer——GrabToPointerTip

2、去掉要抓取物体的右手吸附点。

若是设置了吸附点,则不会吸附在射线顶端,而是实现吸附点的抓取。

VR让射线一直显示的方法


http://www.taodudu.cc/news/show-3511960.html

相关文章:

  • CoCube群机器人预览→资讯剧透←
  • bulter机器人_九款最牛的物流机器人:中国曹操亮了
  • bulter机器人_盘点国内外受欢迎的九款物流机器人
  • bulter机器人_盘点:九款物流机器人
  • bulter机器人_浅谈国内外9大智能物流机器人
  • 庖丁解牛-亚马逊KIVA硬件拆解
  • 我和一个投资人聊了聊公有云的资本情况,太无趣了
  • 为什么在开曼群岛注册公司?
  • 清华姚期智最新演讲:为什么现在是金融科技的“新”黄金时代
  • 图灵在布莱切利园的女朋友_前亚马逊副总裁蒂姆·布莱伊为什么离开了
  • 人工智能为什么这么火?看看安防江湖30年血战就知道了
  • 22岁的我为什么辞去了年薪150万的工作?值得深思
  • 就在刚刚,UCloud 宣布获得中移资本战略投资!
  • 我为什么在22岁辞去年薪150万的工作
  • 基金合作保密协议
  • 仿神庙逃亡
  • 解密神庙逃亡类跑酷游戏地图无限的原因
  • pygame 神庙逃亡
  • android动态视力测试,android《神庙逃亡》轻松通关技巧全攻略
  • 【Unity3D】模仿制作“神庙逃亡”吃金币后金币飞出屏幕效果
  • 周赛题目 福州 神庙逃亡
  • Unity3D之神庙逃亡路移动效果
  • Problem 2121 神庙逃亡(FZU)
  • WP8手机安装《神庙逃亡》的教程
  • 安卓游戏《神庙逃亡2》之技术流高手进阶技巧
  • A - 神庙逃亡
  • FZU - 2121 - 神庙逃亡
  • 神庙逃亡——单纯的物理题
  • 神庙逃亡破解分析
  • html实现神墓逃亡小游戏(自适应)

HTC VIEW丨14. 使用激光指针与物体交互:一直显示激光——(VR交互机制3-Use)相关推荐

  1. HTC VIVE丨11. 使用VRTK实现与物体的交互

    要点 1.可实现的效果:攀爬.双手持握.缩放物体等 2.VRTK中与物体交互的三种类型:Touch.Grab.Use Touch:手柄悬停在物体上面,跟物体进行碰撞或接触 Grab:按动某一定义的按键 ...

  2. 利用unity和steamVR完成场景漫游(四) 利用VRTK实现激光指针

    简单激光指针(VRTK_ SimplePointer) 简单指针(Simple Pointer)脚本从控制器尾部发出一个有色光束来模拟激光束.这在场景中指向对象很有用,它能判断所指向的对象以及对象距控 ...

  3. HTC View 手柄操作简介

    核心类简介: SteamVR_TrackedObject 此类用于根据硬件设备,并为硬件设备分配相应的索引 SteamVR_Controller.Device 最重要的类,封装了跟踪设备的全部信息,例 ...

  4. Ubuntu 14.04系统托盘图标问题,skype托盘图标显示

    Ubuntu 14.04系统托盘图标问题,skype托盘图标显示_瑞波支付_新浪博客 Ubuntu 14.04 取消了系统托盘白名单机制,导致使用传统系统托盘技术的程序无法显示出托盘图标,dconf- ...

  5. [激光原理与应用-25]:《激光原理与技术》-11- 激光产生技术-非线性技术之激光倍频、非线性晶体CLBO、BBO、LBO

    目录 第1章 什么是激光倍频 1.1 什么是激光倍频 1.2 激光倍频的好处 第2章 激光倍频的基本原理 2.1 基本原理 2.2 倍频的条件 2.3 分类 第3章 倍频晶体 3.1 BBO,LBO晶 ...

  6. [激光原理与应用-26]:《激光原理与技术》-12- 激光产生技术-短脉冲、超短脉冲、调Q技术、锁模技术

    目录 第1章 什么是激光脉冲 1.1 什么是激光脉冲(时间+能量维度) 1.2 激光脉冲的好处 1.3 巨脉冲激光(能量维度) 1.4 什么是激光短脉冲与超短脉冲激光(时间维度) 1.5 长脉冲宽度缺 ...

  7. [激光原理与应用-21]:《激光原理与技术》-7- 激光技术大汇总与总体概述

    目录 前言: 第1章 什么是激光技术 1.1 什么是激光技术 1.2 激光技术的分类方法 第2章 激光的应用技术 2.1 激光加工技术 2.2 激光快速成型 2.3 激光切割 2.4 激光焊接 2.5 ...

  8. 基于unity+HTC VIVE的室内漫游交互(教你如何“无代码”VR交互)

    简单粗暴,一个插件让你无代码实现VR交互 开发环境steamVR2.0+unity2017.1.0f1 steamVR2.0下载地址 一.总体目标 Unity+HTC VIVE 开发: 1.场景漫游+ ...

  9. [激光原理与应用-22]:《激光原理与技术》-8- 激光产生技术-选模技术:横模、纵模

    目录 第1章 什么是激光的模式 1.1 激光的特性参数 1.2 激光的"模" 1.3 选模 第2章 纵模 2.1 什么是纵模 2.2 纵模的决定因素 2.3 单纵模的选模方法 第3 ...

最新文章

  1. 【Ethereum】以太坊ERC20 Token标准完整说明
  2. eureka对比Zookeeper:
  3. 素数与线性筛选法初级版
  4. 检测输入路径是否存在错误_为什么存在用户输入错误
  5. Ubuntu下将Sublime Text设置为默认编辑器
  6. 爬虫项目三:爬取选课信息
  7. c语言 信号函数,C语言中进程信号集的相关操作函数详解
  8. node.js中net网络模块TCP服务端与客户端的使用
  9. Python安装详细步骤
  10. 安卓使用MediaPlayer播放RTSP无画面的解决办法
  11. SUMO地图中添加交通流
  12. automation 服务器不能创建对象
  13. 语音识别使用推荐(讯飞、百度、腾讯、云知声等)
  14. 熟知四种常见的BIOS信息说明【7gyy】
  15. R语言——ggplot2的绘图逻辑
  16. ubuntu快捷键备忘
  17. ICPC 2018 焦作 C题 Supreme Command
  18. pop php,什么是POP
  19. python 提取列表中长度大于3的字符串,列表中什么元素都有
  20. C++ Boost库:简介和第一个示例程序

热门文章

  1. Qt在cmd窗口下编译工程遇到问题0xc0000135
  2. 初学游戏建模怎么入门
  3. 存货成本确定方法-进价计算设计
  4. 了解英文同声翻译器怎么用吗?
  5. R语言学习由浅入深路线
  6. U盘插入电脑导致电脑关机的原因及解决办法
  7. 小猫爪:i.MX RT1050学习笔记8-SEMC
  8. 记:从零开始讲解UDS(四)——应用层概述(2)错误码(NRC)概述
  9. MFCRibbion工具栏透明图片
  10. 如何正确打开 Spring 事务?