Vuforia添加虛擬按鍵


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);
        }
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM