【发布时间】:2015-12-29 05:21:16
【问题描述】:
我用 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)
如何解决这些错误?
【问题讨论】:
-
就像错误所说...您可能在项目中缺少对 Vuforria DLL 的一些引用。您需要确保已添加它们
标签: c# augmented-reality vuforia