首页 文章

未找到Vuforia命名空间

提问于
浏览
0

我用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:找不到类型或命名空间名称'IVirtualButtonEventHandler'(您是否缺少using指令或程序集引用?)(CS0246)(Assembly-CSharp)2):错误CS0246:类型或命名空间找不到名称'VirtualButtonAbstractBehaviour'(您是否缺少using指令或程序集引用?)(CS0246)(Assembly-CSharp)3):错误CS0246:找不到类型或命名空间名称'VirtualButtonAbstractBehaviour'(是你吗?缺少using指令或程序集引用?)(CS0246)(Assembly-CSharp)4):错误CS0246:找不到类型或命名空间名称'VuforiaBehaviourComponentFactory'(您是否缺少using指令或程序集引用?)( CS0246)(Assembly-CSharp-Editor)

我该如何解决这些错误?

2 回答

  • 2

    尝试添加

    using Vuforia;
    

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

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

    using UnityEngine;
    using System.Collections.Generic;
    
  • 0

    我假设您复制了示例

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

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

相关问题