unity 2017.3 + vuforia 7.0 之 利用射线检测与AR对象进行交互
2018-02-26 18:22
741 查看
写在新的开始
今天是戊戌狗年的第一天班,新的一年当然要从新的一篇博客开始。因为项目需要,今天研究了一下如何在AR场景中使用射线检测的方法和AR对象进行互动。直接上代码:
//如果识别到平面 则开始发射射线 if (DeployStageOnce.Initialize) { Debug.Log("检测到水平面"); //从摄像机发出一条射线 通过屏幕中心点 ray = arCamera.ScreenPointToRay(new Vector3(Screen.width / 2, Screen.height / 2, 0)); //如果碰到物体 if (Physics.Raycast(ray, out objhit, 100)) { Debug.Log("射线碰撞到碰撞体"); //获取到射线碰撞到的物体 GameObject gameObj = objhit.collider.gameObject; if(gameObj.tag== "ClocklFace") { Debug.Log("碰撞体类型为ClocklFace"); } } }1.首先我需要检测一下,用户是不是已经放置了AR对象了,如果是的话才会发射射线。
2.当我发射射线后,unity会持续不断的检测射线的碰撞情况。
3.当射线碰撞到碰撞体以后,检测一下这是不是我想要的对象。
Tips 1:
一般情况下,我们需要射线检测的时候都是玩家进行点击屏幕操作,所以ScreenPointToRay(Vector3 position)的
参数一般会使用Input.mousePosition,然而我这就是二般情况,我希望射线从屏幕中央发射,也就
是说玩家用手机对准AR对象,所以我这里的参数使用的是new Vector3(Screen.width / 2, Screen.height / 2, 0)。
Tips 2:
Tips 3:
别忘了设置对象的Tag。
你所希望检测的对象必须是带有碰撞体的。
最后:
如果没有问题的话,可以在Console面板看到如上信息。
如果你想看见这条射线的话,还可以
】
相关文章推荐
- [置顶] unity 2017.3 + vuforia 7.0 之 AR场景和非AR场景切换
- unity 2017.3 + vuforia 7.0 之 ObjectTarget 控制子对象
- 利用Vuforia、Unity 实现AR识别图触发音频播放
- 利用射线进行碰撞检测做射击效果
- 利用 AutoML 进行大规模图像分类和对象检测
- unity 2017.3 + vuforia 7.0 之 ObjectTarget
- 使用unity插件vuforia进行AR开发
- [置顶] unity 2017.3 + vuforia 7.0 之 Ground Plane Stage
- unity 2017.3 + vuforia 7.0 之 AR贪吃蛇
- 客户端和应用服务器之间利用HttpClient和Servlet交互JSON对象进行通信
- [置顶] unity 2017.3 + vuforia 7.0 之 Plane Finder
- 利用高通Vuforia、Unity 实现AR识别图触发音频播放
- 利用postgresql进行缓冲区内对象检测过程中遇到的sql查询效率问题解决方案记录
- 利用operator关键字在对象间进行赋值的几点注意事项(1)
- 利用OpenCV的Haar特征目标检测方法进行人脸识别的尝试(一)
- Tomcat如何与Servlet对象进行交互
- Unity+Vuforia SDKAR开发系列教程--1.1 AR技术介绍
- 利用JNI进行对象操作
- Unity 常用射线检测方法
- 【Unity】3.1 利用内置的3D对象创建三维模型