未找到Vuforia命名空间

时间:2015-12-29 05:21:16

标签: c# augmented-reality vuforia

我用Vuforia制作了增强现实的虚拟按钮:

using UnityEngine;
using System.Collections.Generic;

public class VBGordangDuaEventHandler : MonoBehaviour, IVirtualButtonEventHandler
{
    #region PUBLIC_MEMBER_VARIABLES

    /// <summary>
    /// The materials that will be set for the teapot model
    /// </summary>
    public Material[] m_TeapotMaterials;
    public AudioSource VBgordangduahitam;
    public AudioSource VBgordangduamerah;

    #endregion $3$



    #region PRIVATE_MEMBER_VARIABLES

private GameObject mTeapot;
private List<Material> mActiveMaterials;

#endregion $4$



#region UNITY_MONOBEHAVIOUR_METHODS

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;

    // The list of active materials
    mActiveMaterials = new List<Material>();
}

#endregion $9$



#region PUBLIC_METHODS

/// <summary>
/// Called when the virtual button has just been pressed:
/// </summary>
public void OnButtonPressed(VirtualButtonAbstractBehaviour vb)
{
    Debug.Log("OnButtonPressed::" + vb.VirtualButtonName);

    /*if (!IsValid())
    {
        return;
    }*/

    // Add the material corresponding to this virtual button
    // to the active material list:
    switch (vb.VirtualButtonName)
    {
    case "VBgordangduahitam":
        Debug.Log ("gordangduahitam");
        suaragordangduahitam.Play ();
        break;

    case "VBgordangduamerah":
        Debug.Log ("gordang2merah");
        suaragordangduamerah.Play ();
        break;

    }

    // Apply the new material:
    /*if (mActiveMaterials.Count > 0)
        mTeapot.renderer.material = mActiveMaterials[mActiveMaterials.Count - 1];*/
}


/// <summary>
/// Called when the virtual button has just been released:
/// </summary>
public void OnButtonReleased(VirtualButtonAbstractBehaviour vb)
{
    if (!IsValid())
    {
        return;
    }

    // Remove the material corresponding to this virtual button
    // from the active material list:
    switch (vb.VirtualButtonName)
    {
    case "red":
        mActiveMaterials.Remove(m_TeapotMaterials[0]);
        break;

    case "blue":
        mActiveMaterials.Remove(m_TeapotMaterials[1]);
        break;

    case "yellow":
        mActiveMaterials.Remove(m_TeapotMaterials[2]);
        break;

    case "green":
        mActiveMaterials.Remove(m_TeapotMaterials[3]);
        break;
    }

    // Apply the next active material, or apply the default material:
    /*if (mActiveMaterials.Count > 0)
        mTeapot.renderer.material = mActiveMaterials[mActiveMaterials.Count - 1];
    else
        mTeapot.renderer.material = m_TeapotMaterials[4];*/
}


private bool IsValid()
{
    // Check the materials and teapot have been set:
    return  mTeapot != null;
}

#endregion $35$

为什么会出现以下错误?

  

1):错误CS0246:类型或命名空间名称&#39; IVirtualButtonEventHandler&#39;找不到(你错过了使用指令或汇编引用吗?)(CS0246)(Assembly-CSharp)

     

2):错误CS0246:类型或命名空间名称&#39; VirtualButtonAbstractBehaviour&#39;找不到(你错过了使用指令或汇编引用吗?)(CS0246)(Assembly-CSharp)

     

3):错误CS0246:类型或命名空间名称&#39; VirtualButtonAbstractBehaviour&#39;找不到(你错过了使用指令或汇编引用吗?)(CS0246)(Assembly-CSharp)

     

4):错误CS0246:类型或命名空间名称&#39; VuforiaBehaviourComponentFactory&#39;找不到(你是否缺少using指令或汇编引用?)(CS0246)(Assembly-CSharp-Editor)

如何解决这些错误?

2 个答案:

答案 0 :(得分:2)

尝试添加

using UnityEngine;
using System.Collections.Generic;

到代码的顶部。正如@ShaiAharoni在评论中提到的,你需要引用Vuforia DLL。

您可能需要的其他参考资料包括

{{1}}

答案 1 :(得分:0)

我假设您从

复制示例

https://developer.vuforia.com/forum/unity-3-extension-technical-discussion/virtual-buttons-no-response-tap

登录/注册并下载示例。根据你的帖子,你没有添加对dll的引用,这些是你得到的错误。如果您下载代码示例,则可能会获得dll,以便您可以相应地引用代码示例。