效果图:

UGUI交互E.gif

发射激光:

在StemVR中自带有SteamVR_LaserPointer的脚本,是用来控制激光。

SteamVR_LaserPointer.png

开启激光:

SteamVrLaserPointer.GetComponent().enabled = true;

在开启激光时,会创建一个cube,用来模拟激光

关闭激光:

SteamVrLaserPointer.GetComponent().enabled = false; //射线关闭

SteamVrLaserPointer.GetComponent().pointer.transform.localScale = new Vector3(0, 0, 0);

UI互交:

使用UnityEvent的目的是,绑定事件可视化

image.png

private PointerEventArgs pointerEventArgs;

public SteamVR_LaserPointer SteamVrLaserPointer;

public UnityEvent mOnEnter = null;

public UnityEvent mOnClick = null;

public UnityEvent mOnUp = null;

void OnEnable()

{

SteamVrLaserPointer.PointerClick += SteamVrLaserPointer_PointerClick;

SteamVrLaserPointer.PointerIn += SteamVrLaserPointer_PointerIn;

SteamVrLaserPointer.PointerOut += SteamVrLaserPointer_PointerOut;

}

void OnDestroy()

{

SteamVrLaserPointer.PointerClick -= SteamVrLaserPointer_PointerClick;

SteamVrLaserPointer.PointerIn -= SteamVrLaserPointer_PointerIn;

SteamVrLaserPointer.PointerOut -= SteamVrLaserPointer_PointerOut;

}

private void SteamVrLaserPointer_PointerOut(object sender, PointerEventArgs e)

{

if (e.target.gameObject == this.gameObject)

{

if (mOnUp != null) mOnUp.Invoke();

}

}

private void SteamVrLaserPointer_PointerIn(object sender, PointerEventArgs e)

{

if (e.target.gameObject == this.gameObject)

{

if (mOnEnter != null) mOnEnter.Invoke();

}

}

private void SteamVrLaserPointer_PointerClick(object sender, PointerEventArgs e)

{

if (e.target.gameObject == this.gameObject)

{

Debug.Log(e);

if (mOnClick != null)

{

mOnClick.Invoke();

}

}

}

当获取手柄的GrabGrip键,按下就执行互交

steamvr unity 连接眼镜_unity SteamVR2.0 激光与UGUI交互(一)相关推荐

  1. steamvr unity 连接眼镜_Unity SteamVR插件集成

    标签: 重要组件 SteamVR_Camera VR摄像机,主要功能是将Unity摄像机的画面进行变化,形成Vive中的成像画面 使用方法: l 在任一个摄像机上增加脚本 l 点击Expand按钮 完 ...

  2. steamvr unity 连接眼镜_unity Steam VR 手柄按键基本操作

    获取按钮 方法一: 先定义 public SteamVR_Action_Boolean disk; 使用 disk.GetLastStateDown(SteamVR_Input_Sources.Any ...

  3. steamvr unity 连接眼镜_150度FOV,自研显示方案,Kura公布全新AR眼镜Gallium

    去年11月,一家名为Kura的美国AR初创公司就曝光了一款视场角135度.亮度2000nit的AR光波导原型,其视场角和亮度数据远超现有AR方案,当时获了业内广泛关注. 近期,Kura创始人兼CEO ...

  4. [AR/VR教程] SteamVR Unity工具包(二):激光和移动

    Simple Laser Pointer (VRTK_SimplePointer) 简单激光指针(VRTK_ SimplePointer) The Simple Pointer emits a col ...

  5. SteamVR Unity工具包(二):激光和移动

    Simple Laser Pointer (VRTK_SimplePointer) 简单激光指针(VRTK_ SimplePointer) The Simple Pointer emits a col ...

  6. SteamVR2.0开发指南(Yanlz+Unity+SteamVR+Plugin+OpenVR+InputSystem+Kunckles+VIVE+Oculus+OpenXR+立钻哥哥++ok++)

    <SteamVR2.0开发指南> 版本 作者 参与者 完成日期 备注 SteamVR2.0_Guide_V01_1.0 严立钻 2019.01.23 ++++SteamVR2.0开发指南: ...

  7. SteamVR Unity Tool Kit(二):激光与移动

    Simple Laser Pointer (VRTK_SimplePointer) 简单激光指针(VRTK_ SimplePointer) The Simple Pointer emits a col ...

  8. Unity使用SteamVR2.0 SteamVRInput配置和使用

    注意:Unity需要使用2020以上的版本 一:选择最新版本插件 1.下载SteamVRPlugin和VRTK v4 新版本的Unity,已经关掉了资源商店的功能,下载插件需求先去官网资源商店添加我们 ...

  9. SteamVR2.0 UGUI射线交互模拟

    SteamVR2.0 UGUI射线交互模拟 文章目录 SteamVR2.0 UGUI射线交互模拟 前言 一.开始前要做的准备 1.在项目开始前应当把环境给搭建好,在Unity项目中把SteamVR导入 ...

最新文章

  1. 重写了博客上的代码着色脚本
  2. our reuse project in HCP
  3. palapa php,有什么办法可以在Android上运行PHP
  4. Android项目实战(三):实现第一次进入软件的引导页
  5. Linux开机启动过程(12):start_kernel()->还是setup_arch
  6. 如何在20130513image上,备份NAND到SD卡,然后把这个SD卡做成可以自启动的SD卡
  7. 一个优秀的测试如何在敏捷开发中体现自己的价值?
  8. mysql优化必知(mysql的语句执行顺序)
  9. 洛谷 题解 UVA1395 【苗条的生成树 Slim Span】
  10. ElasticSearch全文搜索引擎之Windows集群搭建
  11. Android-Studio 缓存文件夹配置
  12. 一个简单的apk破解
  13. 阿里云迁移工具推荐最佳实践:物理服务器迁移到阿里云
  14. windows环境下远程操作Linux的工具-Xshell WinSCP
  15. React---组件通信的方式
  16. iOS 指纹解锁 检测指纹信息变更
  17. 如何协助企业IT架构转型
  18. 2012_WOW_Designing Steganographic Distortion Using Directional Filters
  19. 2018年全国高中数学联赛浙江省预赛
  20. php 根据经纬度获取附近50km的信息,并计算距离

热门文章

  1. 计算斯皮尔曼的等级相关系数(Spearman’s rank correlation coefficient)步骤
  2. 解决VSCode终端中文乱码问题
  3. 使用selenium解决svg标签定位问题
  4. excel部分字段相同模糊匹配
  5. 调用高德逆地理接口_PHP实现高德地图的地理/逆地理编码
  6. 基于强度传输方程的相位解包裹算法
  7. 人人网登录请求使用账号密码发起login
  8. 基于Kubernetes的微服务自动化运维
  9. 2018吉林职称计算机考试,2018年吉林全国计算机等级考试报考简章
  10. IOS应用程序自身的本地化