一 、 要想寫自己的 , 先理解官方的列子。
因為上傳圖片出現問題,現在我簡單說一下下載官方的Samples, Resources 里面就可以找到,點擊右側的 Virtual Buttons ,找到它的Demo下載下來。
注意是Unity文件,因為我們是在Unity上面生成的APK嘛...
二 、導入到Unity 中查看例子是如何寫的。
Import Custompackage 導入我們剛才下載下來的文件。然后就能看到了。點擊資源文件里,Assets 能看到 Virtual Buttons 場景,可以看到里面有兩個識別卡片。 有一個足球,還有一個就是用虛擬按鈕換茶壺貼圖的,點擊這個的ImageTarget右側檢視面板上能顯示各參數,往下拉,找到它的
Virtual Button Event Handler 對於虛擬按鈕的監聽事件全在於此,同時你也可以控制以前我寫過的文章中的聲音、動畫、等。GUI按鈕做到的東西,虛擬按鈕一樣能幫你做到。
這里我用的是虛擬按鈕控制動畫播放。下面是核心代碼。
1 using UnityEngine; 2 using System.Collections.Generic; 3 4 public class VBteapot : MonoBehaviour, 5 IVirtualButtonEventHandler 6 { 7 8 void Start() 9 { 10 VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>(); 11 for (int i = 0; i < vbs.Length; ++i) 12 { 13 vbs[i].RegisterEventHandler(this); 14 } 15 16 17 } 18 19 20 public void OnButtonPressed(VirtualButtonBehaviour vb) 21 { 22 Debug.Log("OnButtonPressed"); 23 24 switch (vb.VirtualButtonName) 25 { 26 case "VB1": 27 28 // mActiveMaterials.Add(m_TeapotMaterials[0]); 29 GameObject.Find("ARdemo1").transform.animation.wrapMode=WrapMode.Loop; 30 GameObject.Find("ARdemo1").transform.animation.Play("bike"); 31 break; 32 33 case "VB2": 34 GameObject.Find("ARdemo1").transform.animation.wrapMode=WrapMode.Loop; 35 GameObject.Find("ARdemo1").transform.animation.Stop("bike"); 36 break; 37 } 38 } 39 40 public void OnButtonReleased(VirtualButtonBehaviour vb) 41 { 42 43 } 44 45 }