1,这个可以实现扣动板机出现射线。射线与物体碰撞的地方用小球来表示。

使用的是SteamVR自己带的脚本SteamVR_LaserPointer脚本就可以。但这个是射线会一直显示。

sphere是小球申请变量后面板上拖动把新建的三维物体sphere为这个变量赋值赋值。

需要碰撞点的那个物体上加 collider组件。

     public SteamVR_TrackedObject trackedObj;底下的写在updata()里面SteamVR_Controller.Device device=SteamVR_Controller.Input((int)trackedObj.index);if (device.GetPress(SteamVR_Controller.ButtonMask.Trigger)){//print ("GetPress");Ray ray = new Ray(trackedObj.transform.position, trackedObj.transform.forward);//var point = Camera.main.ScreenToWorldPoint(Input.mousePosition);RaycastHit hit;if (GetComponent<Collider>().Raycast(ray, out hit, 50)){var point = hit.point;print (point);GameObject go = Instantiate (sphere, point,sphere.transform.rotation);go.transform.parent = ARACP.transform;}}

2,参考SteamVR_LaserPointer重新写脚本实现扣板机出射线,触摸手柄上的触摸板射线消失。

using System.Collections;
using System.Collections.Generic;
using UnityEngine;public class RayLine : MonoBehaviour {public SteamVR_TrackedObject trackedObj;public bool active = true;public Color color;public float thickness = 0.002f;public float thicknessIn = 0.0f;public GameObject holder;public GameObject pointer;// Use this for initializationvoid Start () {holder = new GameObject();holder.transform.parent = this.transform;holder.transform.localPosition = Vector3.zero;pointer = GameObject.CreatePrimitive(PrimitiveType.Cube);pointer.transform.parent = holder.transform;pointer.transform.localScale = new Vector3(thicknessIn, thicknessIn, 100f);pointer.transform.localPosition = new Vector3(0f, 0f, 50f);}// Update is called once per framevoid Update () {if (trackedObj==null){//print ("NULL");return;}SteamVR_Controller.Device device=SteamVR_Controller.Input((int)trackedObj.index);//SteamVR_Controller.Device device=SteamVR_Controller.Input(4);if (device.GetTouchDown(SteamVR_Controller.ButtonMask.Trigger)){}//      else if (device.GetTouch(SteamVR_Controller.ButtonMask.Trigger))else if (device.GetPress(SteamVR_Controller.ButtonMask.Trigger)){pointer.transform.parent = holder.transform;pointer.transform.localScale = new Vector3(thickness, thickness, 100f);pointer.transform.localPosition = new Vector3(0f, 0f, 50f);BoxCollider collider = pointer.GetComponent<BoxCollider>();//print ("GetPress");Ray ray = new Ray(trackedObj.transform.position, trackedObj.transform.forward);//var point = Camera.main.ScreenToWorldPoint(Input.mousePosition);}//touch the pad to clear lines(linerender)else if(device.GetTouch(SteamVR_Controller.ButtonMask.Touchpad)){pointer.transform.localScale = new Vector3(thicknessIn, thicknessIn, 100f);}}}

3,使用VRTK就可以简单实现相关功能。

在新建的工程中将steamvr中这两个拖上去。

把VRTK的sample中第三个simplepointer的打开,把 【VRTK】复制到自己的工程里

把相关的设置搞好

有时间在hTC的视角无法看见射线,这时可以调整HTC的相机要看到 Ignore Raycast层。

HTC 手柄扣动板机出现射线以及碰撞点用小球表示相关推荐

  1. VRTK功能教学(二):Unity3DVRTK手柄瞬移和UI交互射线切换功能丨3D模型射线交互切换丨直线和曲线的切换

    VRTK功能教学(二):Unity3DVRTK手柄瞬移和UI交互射线切换功能丨3D模型射线交互切换丨直线和曲线的切换 ` 文章目录 VRTK功能教学(二):Unity3DVRTK手柄瞬移和UI交互射线 ...

  2. 泛海三江手动控制盘怎么设置_热板机如何操作控制系统?

    1.热板机采用可编程控制器(PLC).触摸屏控制全操作过程,既可全自动操作, 也可手动操作.如下几点: 2.设备各端安装双紧急停车按钮和开关按钮和报警装置. 3.参数设置界面加密码锁定,以防非授权人员 ...

  3. MS UC 2013-0-虚拟机-标准化-部署-2-模板机-制作-4

    Blog:http://dynamic.blog.51cto.com MSN:LiuJinFeng@msn.com QQ:316190099 MS UC 2013-0-虚拟机-标准化-部署-2-模板机 ...

  4. otc机器人氩弧焊机_轻松搞定砂光机前后连线翻转!【富全智能】全自动180度圆筒式翻板机...

    点击上方 蓝字关注我们 ! 新时代人们之所以要广泛使用机器,是由于机器既能承担人力所不能或不便进行的工作,又能较人工生产改进产品的质量,特别是能够大大提升劳动生产率和改善劳动条件.因此好的木工机械设计 ...

  5. htc one m7刷Linux,HTC One M7 刷机图文教程 一键刷Recovery教程

    一般来说刷入第三方ROM之前都需要手机已经刷入第三方Recovery了,现在安趣小编带来了一个HTC One刷机教程,教大家HTC One一键刷Recovery的详细教程,希望对大家有所帮助! 1.首 ...

  6. ROS配置和使用“北通”无线手柄,主从机远程控制JP-Chassis底盘

    ROS配置和使用"北通"无线手柄,主从机远程控制JP-Chassis底盘 环境:Ubuntu18.04 + ROS Melodic 硬件:北通阿修罗2te无线版+笔记本(主机)+A ...

  7. arm搭建云手机教程_云手机解决方案对比:arm服务器与安卓板机

    5G不仅带动了云游戏的发展,更让云手机变成了红利风口,吸引了无数有实力的公司分羹.在搭建云手机这种产品的时候有两种常见的解决方案可选,一种是基于arm服务器,另外一种是用安卓板机,对比之下能明显看出哪 ...

  8. 以下计算机的分类 不正确,按CPU芯片可分为单片机、单板机、多芯片机和多板机...

    正确答案: C 按CPU芯片可分为单片机.单板机.多芯片机和多板机 题目:以下对计算机的分类,不正确的是 解析:按芯片可分为286.386.486.Pentium.PⅡ.PⅢ.Pentium4和Pen ...

  9. htc服务器更新系统,HTC U Ultra刷机教程 HTC U Ultra卡刷ruu升级更新官方系统

    2017-08-08 09:22:57 HTC U Ultra刷机教程 HTC U Ultra卡刷ruu升级更新官方系统 标签:HTC U Ultra刷机教程,HTC U Ultra刷机包,HTC U ...

  10. HTC Desire G7刷机

    HTC Desire G7刷机 2011年10月07日 相关帖子: 1,[教程]G7刷机详细教程:解锁S-OFF,ROOT提取,CM-7.0.3ROM刷机 ---> 本帖 2,[教程]Andro ...

最新文章

  1. pl/sql里的exists和in的差别
  2. 汉高澳大利亚matrix矩阵计算器
  3. leetcode 257. 二叉树的所有路径(Java版)
  4. SAP FSM 学习笔记(三) 在微信里发起SAP FSM客户预约
  5. 动手造轮子:实现一个简单的 EventBus
  6. 第一百一十三期:去伪存真,区块链应用到底能解决什么实际问题?
  7. Kibana+Logstash+Elasticsearch 日志查询系统
  8. Java使用Swing实现五子棋。
  9. SQL数据库异地备份(小白篇)两台服务器之间备份
  10. LabVIEW学习笔记(1)
  11. 带分页存储管理系统中计算机应用自考,自考计算机应用基础试题及答案
  12. 如何对matlab .m代码文件进行加密
  13. 如何备份光猫html文件夹,华为光猫分区备份,还原,制作固件教程
  14. 关于超实数单子的说明
  15. java html读取数据库数据类型,从Word(Docx)读取方程式和公式到html并使用java保存数据库(示例代码)...
  16. JNDI-Injection-With-LDAP-Unserialize
  17. 线上展厅视觉奇观 广州商迪
  18. 使用Python出现的错误和解决方法
  19. 42步进电机拆解步距角推导
  20. 社区医疗app-Ui设计

热门文章

  1. js生成的字符串php,js生成任意长度随机字符串
  2. 怎么下载linux历史文件,快速学习Linux-Linux历史
  3. php mysql修改表单数据_表单修改数据
  4. zk临时节点失效时间_dubbo学习(六)服务发布dubbo服务在zk的创建、订阅
  5. layui根据name获取对象_python面向对象——学校学生教职工管理系统类的实例
  6. wsl使用可视化界面_WSL 科学计算〇 | 适合计算化学的环境配置
  7. oracle11g的adg需要付费嘛,Oracle11g ADG 搭建
  8. php跳转图片_HTML点击图片跳转到新页面怎么实现?(示例)
  9. 怎么用python处理word和excel_python处理word和excel文件
  10. perl 的调试和性能测试