如何在检测到多个图像目标时更改音频源

时间:2017-03-19 12:16:36

标签: c# unity3d vuforia

在我的Vuforia Unity项目中,当我瞄准图像目标时会播放声音。如果检测到2个目标,我想现在播放特定的其他声音,如果检测到3个目标,我想要播放另一个声音。

我设法在ARCamera中列出目标图像:

mysqli::multi_query

你知道如何实现我想做的事吗?

1 个答案:

答案 0 :(得分:0)

  

如果检测到2个目标,我现在想播放特定的其他声音   如果检测到3则另一个。

我无法确定你在这方面究竟在苦苦挣扎,但你用activeTrackables.Count()检测了多少目标然后用AudioSource.Play();播放声音。请在顶部使用System.Linq;来使用IEnumerable.Count()

private AudioSource otherAudio;
private AudioSource anotherAudio;

void Start()
{
    otherAudio = GameObject.Find("OtherAudio").GetComponent<AudioSource>();
    anotherAudio = GameObject.Find("OtherAudio").GetComponent<AudioSource>();
}

void Update()
{
    // Get the Vuforia StateManager
    StateManager sm = TrackerManager.Instance.GetStateManager();

    // Query the StateManager to retrieve the list of
    // currently 'active' trackables 
    //(i.e. the ones currently being tracked by Vuforia)
    IEnumerable<TrackableBehaviour> activeTrackables = sm.GetActiveTrackableBehaviours();

    if (activeTrackables.Count() == 2)
    {
        if (!otherAudio.isPlaying)
        {
            otherAudio.Play();
        }
    }

    else if (activeTrackables.Count() == 3)
    {
        if (!anotherAudio.isPlaying)
        {
            anotherAudio.Play();
        }
    }

    // Iterate through the list of active trackables
    Debug.Log("List of trackables currently active (tracked): ");
    foreach (TrackableBehaviour tb in activeTrackables)
    {
        Debug.Log("Trackable: " + tb.TrackableName);
    }
}

您还可以使用一个AudioSource,只需更改其AudioClip,具体取决于检测到的目标数量。