AR虛擬按鍵為真實識別圖上的按鍵,通過按鍵可以實現真實與虛擬之間的按鍵交流
(一)添加按鍵
點擊target,打開advance,添加虛擬按鍵,即可在此target下添加虛擬按鍵
注:虛擬按鍵無法旋轉,只能更改長寬,可以通過Name給虛擬按鍵添加一個標識,通過name訪問到此按鍵
(二)按鍵觸發
public class VirtualBtnController : MonoBehaviour,IVirtualButtonEventHandler//通過接口實現點擊事件 { public VirtualButtonBehaviour[] virtualButtons; public UnityEngine.UI.Button[] structureButtons; //public UnityEngine.UI.Button[] structureButtonsCT; public void OnButtonPressed(VirtualButtonBehaviour vb) { Debug.Log("Virtual button "+vb.VirtualButtonName+" pressed"); //BC virtual button function if(vb.VirtualButtonName.Contains("BildgeShell"))//通過Name確認點擊俺就 { structureButtons[0].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("BottomSlop")) { structureButtons[2].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("BildgeFloor")) { structureButtons[1].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("Longitudianal")) { structureButtons[4].onClick.Invoke(); } //CT virtual button fuction if (vb.VirtualButtonName.Contains("DeckBeam")) { structureButtons[0].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("Floor")) { structureButtons[1].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("InnerShell")) { structureButtons[2].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("OutShell")) { structureButtons[3].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("LongiBH")) { structureButtons[4].onClick.Invoke(); } if (vb.VirtualButtonName.Contains("TransBH")) { structureButtons[5].onClick.Invoke(); } } public void OnButtonReleased(VirtualButtonBehaviour vb) { Debug.Log("Virtual button released"); } void Start () { foreach(var vb in virtualButtons) { vb.RegisterEventHandler(this); } } }