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);
}
}
网友评论