2015-12-29 3 views
0

Я сделал виртуальную кнопку для дополненной реальности с 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 Ошибка: тип или пространство имен имя 'IVirtualButtonEventHandler' не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку) (CS0246) (сборочно-CSharp)

2?): Ошибка CS0246: Не удалось найти имя типа или пространства имен «VirtualButtonAbstractBehaviour» (вам не хватает директивы использования или ссылки на сборку?) (CS0246) (Assembly-CSharp)

3): Ошибка CS0246: Тип или имя пространства имен «VirtualButtonAbstractBehaviour» не удалось найти (вам не хватает директивы использования или ссылки на сборку?) (CS0246) (Assembly-CSharp)

4): CS0246 Ошибка: тип или пространство имен имя 'VuforiaBehaviourComponentFactory' не может быть найден (вы пропали без вести с помощью директивы или ссылка на сборку) (CS0246) (сборочно-CSharp-редактор)

?

Как я могу устранить эти ошибки?

+0

Как ошибка говорит ... Возможно, у вас есть некоторые ссылки на DLL Vuforria в вашем проекте. Вы должны убедиться, что они добавлены –

ответ

1

Попробуйте добавить

using Vuforia; 

В верхней части кода. Как упоминал @ShaiAharoni в своем комментарии, вам необходимо обратиться к Vuforia DLL.

Другие ссылки вам может понадобиться включить

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

у меня было раньше. , но IVirtualButtonEventHandler все еще ошибка –

+0

'using Vuforia;' решил проблему для меня! –

0

Я предполагаю, что вы копируете пример из

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

Вход/регистрация и скачать пример. Согласно вашему сообщению, вы не добавляли ссылки на DLL, и это ошибки, которые вы получаете. Если вы загружаете пример кода, вы можете получить DLL, чтобы вы могли соответствующим образом ссылаться на ваш пример кода.

Смежные вопросы