高通开发AR都想用到互动,虚拟按钮互动可以实现虚拟和现实的结合互动。 主要代码
/*============================================================================== Copyright (c) 2010-2013 QUALCOMM Austria Research Center GmbH. All Rights Reserved. ==============================================================================*/ using UnityEngine; using System.Collections.Generic; /// <summary> /// This class implements the IVirtualButtonEventHandler interface and /// contains the logic to swap materials for the teapot model depending on what /// virtual button has been pressed. /// </summary> public class VirtualButtonEventHandler : MonoBehaviour, IVirtualButtonEventHandler { private GameObject mTeapot; void Start() { // Register with the virtual buttons TrackableBehaviour VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>(); for (int i = 0; i < vbs.Length; ++i) { vbs.RegisterEventHandler(this); } // Get handle to the teapot object mTeapot = transform.FindChild("teapot").gameObject; } #endregion // UNITY_MONOBEHAVIOUR_METHODS #region PUBLIC_METHODS //按下 public void OnButtonPressed(VirtualButtonBehaviour vb) { //Debug.Log("OnButtonPressed"); if(vb.VirtualButtonName=="button") { print("button name!!!"); } if(vb.VirtualButtonName=="buttoon_text") { print("button_text "); } } //释放 public void OnButtonReleased(VirtualButtonBehaviour vb) { if(vb.VirtualButtonName=="button") { print("button name released !!!"); } if(vb.VirtualButtonName=="buttoon_text") { print("button_text released"); } } #endregion // PUBLIC_METHODS }添加到这个物体上ImageTarget,在添加 注意 virtual Button Behaviour 这个脚本的name就是vb.VirtualButtonName=="button"; 这样就ok了
|