您的位置:首页 > 移动开发 > Unity3D

unity基础开发----高通 AR Unity 虚拟按钮

2013-12-28 17:29 615 查看
高通开发AR都想用到互动,虚拟按钮互动可以实现虚拟和现实的结合互动。

我使用的版本是vuforia-sampleapps-unity-2-5-8的,具体怎么得到这个看/article/2378723.html

主要代码



/*==============================================================================
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[i].RegisterEventHandler(this);
        }

        // Get handle to the teapot object
        mTeapot = transform.FindChild("teapot").gameObject;

     }

    #endregion // UNITY_MONOBEH***IOUR_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
}

/*============================================================================== 
 * Copyright (c) 2012-2013 Qualcomm Connected Experiences, Inc. 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
{
    #region PUBLIC_MEMBER_VARIABLES

    /// <summary>
    /// The materials that will be set for the teapot model
    /// </summary>
   

    #endregion // PUBLIC_MEMBER_VARIABLES

    #region PRIVATE_MEMBER_VARIABLES

    #endregion // PRIVATE_MEMBER_VARIABLES

    #region UNITY_MONOBEH***IOUR_METHODS

    void Start()
    {
        VirtualButtonBehaviour[] vbs = GetComponentsInChildren<VirtualButtonBehaviour>();
        for (int i = 0; i < vbs.Length; ++i)
        {
            vbs[i].RegisterEventHandler(this);
        }
    }

    #endregion // UNITY_MONOBEH***IOUR_METHODS

    #region PUBLIC_METHODS
    
    /// <summary>
    /// Called when the virtual button has just been pressed:
    /// </summary>
    public void OnButtonPressed(VirtualButtonAbstractBehaviour vb)
    {
        if (vb.VirtualButtonName == "Button01")
       {
           GameObject obj = GameObject.Find("ankylosaurus");
           obj.animation.Play();
           print("123456");
       }
    }

    /// <summary>
    /// Called when the virtual button has just been released:
    /// </summary>
    public void OnButtonReleased(VirtualButtonAbstractBehaviour vb)
    {
        if (vb.VirtualButtonName == "Button01")
        {
            GameObject obj = GameObject.Find("ankylosaurus");
            obj.animation.Stop();
            print("wwwww");
        }
    }

   

    #endregion // PUBLIC_METHODS
}


添加到这个物体上ImageTarget,在添加





注意 virtual Button Behaviour 这个脚本的name就是vb.VirtualButtonName=="button";

这样就ok了
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: