美文网首页
Vuforia虚拟按钮

Vuforia虚拟按钮

作者: 萧非子 | 来源:发表于2017-12-01 14:13 被阅读42次

using UnityEngine;
using System.Collections;
using Vuforia;
using System;
//Vuforia 虚拟按钮
public class VBtnEvent_Card : MonoBehaviour, IVirtualButtonEventHandler
{
public GameObject go;//扫描卡片,显示的对象
public GameObject vtn1_go;//按下虚拟1按钮1,显示的对象
public GameObject vtn2_go;//按下虚拟2按钮1,显示的对象
public GameObject vtn3_go;//按下虚拟3按钮1,显示的对象

void Start()
{
    VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
    for (int i = 0; i < vbs.Length; ++i)
    {
        vbs[i].RegisterEventHandler(this);
        //把ImageTarget下所有含有VirtualButtonBehaviour组件的物体注册过来(使用前面写的Pressed和Released方法处理)。  
    }

    //当扫描卡片时,显示默认出现的对象;
    go.SetActive(true);
    vtn1_go.SetActive(false);
    vtn2_go.SetActive(false);
    vtn3_go.SetActive(false);

    Debug.Log("识别到卡片");

}
void Update()
{
    //当失去卡片时,只显示默认出现的对象
    if (!DefaultTrackableEventHandler.is_found)
    {
        go.SetActive(true);
        vtn1_go.SetActive(false);
        vtn2_go.SetActive(false);
        vtn3_go.SetActive(false);
        Debug.Log("识别卡片丢失");
    }
}
//虚拟按钮按下;虚拟按钮的名称分别是:VBtn1,VBtn2,VBtn3
public void OnButtonPressed(VirtualButtonBehaviour vb)
{
    //当对应按钮按下,对应物体显示出来
    switch (vb.VirtualButtonName)
    {
        case "VBtn1":
            go.SetActive(false);
            vtn1_go.SetActive(true);
            vtn2_go.SetActive(false);
            vtn3_go.SetActive(false);
            break;
        case "VBtn2":
            go.SetActive(false);
            vtn1_go.SetActive(false);
            vtn2_go.SetActive(true);
            vtn3_go.SetActive(false);
            break;
        case "VBtn3":
            go.SetActive(false);
            vtn1_go.SetActive(false);
            vtn2_go.SetActive(false);
            vtn3_go.SetActive(true);
            break;
    }
    Debug.Log("OnButtonPressed: " + vb.VirtualButtonName);
}
//虚拟按钮抬起
public void OnButtonReleased(VirtualButtonBehaviour vb)
{
    //当按钮没有按下,按钮对应物体不显示,只显示默认卡片识别对象
    switch (vb.VirtualButtonName)
    {
        case "VBtn1":
            go.SetActive(true);
            vtn1_go.SetActive(false);
            vtn2_go.SetActive(false);
            vtn3_go.SetActive(false);
            break;
        case "VBtn2":
            go.SetActive(true);
            vtn1_go.SetActive(false);
            vtn2_go.SetActive(false);
            vtn3_go.SetActive(false);
            break;
        case "VBtn3":
            go.SetActive(true);
            vtn1_go.SetActive(false);
            vtn2_go.SetActive(false);
            vtn3_go.SetActive(false);
            break;
    }
    Debug.Log("OnButtonRelessed: " + vb.VirtualButtonName);
}

}

相关文章

网友评论

      本文标题:Vuforia虚拟按钮

      本文链接:https://www.haomeiwen.com/subject/mofwbxtx.html