unity+vuforia(AR)(Virtual Buttons)

虛擬按鈕,讓我們可以觸摸現實中虛擬存在的按鈕而觸發事件,通俗來講,就是讓人感覺自己可以觸摸虛擬物體一般,話不多說,咱就來試試。如何導入vuforia包就不在此說明了,因爲下載的249.65 MB的例子包含了所以的特徵。

把ARCamera,ImageTarget,teapot拖到Hierarchy,還有我這四個顏色名字,就是把Virtual Buttons的預設(就是Prefab格式)拖四遍拖入,放置到圖片相應的位置,然後重命名下名字。


點擊ARCamera的編輯界面,打勾是慣例,不要忘了,這樣才能識別該圖。

默認的水壺可以設置下默認的材質(不設置也可以,爲了好看點= =#)

虛擬按鈕部分注意紅框部分的名字也要修改,官方給的代碼是根據名字來判斷你觸摸了哪個按鈕的

最後我們來設置最重要的部分了,就是ImageTarget部分,第一個紅框部分肯定不能忘吧。完成後,設置Virtual Button Event Handler腳本,我也忘了是否導入默認就有這個腳本,如果沒有的話找到拖入即可。這裏不要忘記把其他材質拖入,最後一個材質是默認材質,就是手不觸摸按鈕後默認的材質,其他都會隨觸摸變換。

這裏就不貼最後的效果圖了,最後運行觸摸的話準確度還是挺不錯的,放在最後要着重提幾點,如果自己的項目放置虛擬按鈕,要注意以下幾點:

●虛擬按鈕大小應大約是目標識別圖大小的10%

●最好把虛擬按鈕“高亮”,比如識別圖上明確顯示按鈕的位置,提示這是可觸摸的,會有事件反饋

●使虛擬按鈕和周圍有明顯的(例色彩)對比(比如一張白紙上放個按鈕,很難識別按鈕)

●按鈕距離邊界要有充足的空間,避免按了按鈕後追蹤不到識別圖了

對於按鈕位置計算,因爲有http://blog.csdn.net/ggtaas/article/details/38523719博主寫明(感謝ggtaas),我就不再次說明了。

記得編輯下自己按鈕的位置座標,xml格式的文件,例下圖

ImageTarget上自定義好自己的按鈕事件腳本

腳本代碼例如下:

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大笑
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章