unity+vuforia(AR)(Virtual Buttons)

虚拟按钮,让我们可以触摸现实中虚拟存在的按钮而触发事件,通俗来讲,就是让人感觉自己可以触摸虚拟物体一般,话不多说,咱就来试试。如何导入vuforia包就不在此说明了,因为下载的249.65 MB的例子包含了所以的特征。

把ARCamera,ImageTarget,teapot拖到Hierarchy,还有我这四个颜色名字,就是把Virtual Buttons的预设(就是Prefab格式)拖四遍拖入,放置到图片相应的位置,然后重命名下名字。

unity+vuforia(AR)(Virtual Buttons)_第1张图片

点击ARCamera的编辑界面,打勾是惯例,不要忘了,这样才能识别该图。

unity+vuforia(AR)(Virtual Buttons)_第2张图片

默认的水壶可以设置下默认的材质(不设置也可以,为了好看点= =#)

unity+vuforia(AR)(Virtual Buttons)_第3张图片

虚拟按钮部分注意红框部分的名字也要修改,官方给的代码是根据名字来判断你触摸了哪个按钮的

最后我们来设置最重要的部分了,就是ImageTarget部分,第一个红框部分肯定不能忘吧。完成后,设置Virtual Button Event Handler脚本,我也忘了是否导入默认就有这个脚本,如果没有的话找到拖入即可。这里不要忘记把其他材质拖入,最后一个材质是默认材质,就是手不触摸按钮后默认的材质,其他都会随触摸变换。

这里就不贴最后的效果图了,最后运行触摸的话准确度还是挺不错的,放在最后要着重提几点,如果自己的项目放置虚拟按钮,要注意以下几点:

●虚拟按钮大小应大约是目标识别图大小的10%

●最好把虚拟按钮“高亮”,比如识别图上明确显示按钮的位置,提示这是可触摸的,会有事件反馈

●使虚拟按钮和周围有明显的(例色彩)对比(比如一张白纸上放个按钮,很难识别按钮)

●按钮距离边界要有充足的空间,避免按了按钮后追踪不到识别图了

对于按钮位置计算,因为有http://blog.csdn.net/ggtaas/article/details/38523719博主写明(感谢ggtaas),我就不再次说明了。

记得编辑下自己按钮的位置坐标,xml格式的文件,例下图

unity+vuforia(AR)(Virtual Buttons)_第4张图片

ImageTarget上自定义好自己的按钮事件脚本

unity+vuforia(AR)(Virtual Buttons)_第5张图片

脚本代码例如下:

using UnityEngine;
using System.Collections;

public class CustomVirtualButtonEventHandler : MonoBehaviour , IVirtualButtonEventHandler {

	// Use this for initialization
	void Start () {

		VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour> ();
		for (int i = 0; i < vbs.Length; ++i) {
			vbs [i].RegisterEventHandler (this);
		}
	}
	public void update(){
		}

	public void OnButtonPressed( VirtualButtonAbstractBehaviour vb ){
			Debug.Log (vb.VirtualButtonName+ " pressed");
		  

	}
	
	
	public void OnButtonReleased( VirtualButtonAbstractBehaviour vb ){
			Debug.Log(vb.VirtualButtonName+ " released" );
		
	}
}

想要发生什么事件就自己定义吧,多学学Unity 大笑

你可能感兴趣的:(unity,高通,ar,增强现实,vuforia)