TrackableBehaviour 和 ITrackableEventHandler 在 Vuforia 10.20.3 中不起作用

问题描述 投票:0回答:1

我正在使用 Vuforia 版本 10.20.3(最新版本)构建 AR 应用程序。我必须使用 ITrackableEventHandler 的 TrackableBehaviour 来检测是否找到模型的状态...?但似乎 TrackableBehaviour 和 ITrackableEventHandler 在最新版本的 vuforia 中已被弃用。你能告诉我最新版本的 Vuforia 中它的替代品是什么吗...?

我已经尝试过以下代码行。,

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using Vuforia;

public class MerajAudioPlayScript : MonoBehaviour, ITrackableEventHandler
{
    protected TrackableBehaviour mTrackableBehaviour;
    protected TrackableBehaviour.Status m_PreviousStatus;
    protected TrackableBehaviour.Status m_NewStatus;
    public AudioSource a;
    void Start()
    {
        mTrackableBehaviour = GetComponent<TrackableBehaviour>();
        if (mTrackableBehaviour)
        mTrackableBehaviour.RegisterTrackableEventHandler(this);
    }
    public void OnTrackableStateChanged(TrackableBehaviour.Status previousStatus, TrackableBehaviour.Status newStatus)
    {
        m_PreviousStatus = previousStatus;
        m_NewStatus = newStatus;
        Debug.Log("Trackable " + mTrackableBehaviour.TrackableName +
                  " " + mTrackableBehaviour.CurrentStatus +
                  " -- " + mTrackableBehaviour.CurrentStatusInfo);

        if (newStatus == TrackableBehaviour.Status.DETECTED ||
            newStatus == TrackableBehaviour.Status.TRACKED ||
            newStatus == TrackableBehaviour.Status.EXTENDED_TRACKED)
        {
            OnTrackingFound();
        }
        else if (previousStatus == TrackableBehaviour.Status.TRACKED &&
                newStatus == TrackableBehaviour.Status.NO_POSE)
        {
            OnTrackingLost();
        }
        else
        {
            OnTrackingLost();
        }
    }
    protected virtual void OnTrackingFound()
    {

    }
    protected virtual void OnTrackingLost()
    {
        a.Stop();
    }
}

并且它在 ITrackableEventHandler 和 TrackableBehaviour 上给出错误。 错误是., “CS0246:找不到类型或命名空间名称“ITrackableEventHandler”(您是否缺少 using 指令或程序集引用?)” 和 “CS0246:找不到类型或命名空间名称“ITrackableEventHandler”(您是否缺少 using 指令或程序集引用?)” 请告知这个的替代品...?

c# unity-game-engine augmented-reality vuforia gltf
1个回答
0
投票

他们似乎基于此更改了 API: https://docs.unity3d.com/Packages/[电子邮件受保护]/api/Global%20Namespace.DefaultTrackableEventHandler.html

你会先改变第二个:

 public class MerajAudioPlayScript : MonoBehaviour, ITrackableEventHandler

 public class MerajAudioPlayScript : DefaultTrackableEventHandler

然后将所有继承的方法从 virtual 改为 override。

© www.soinside.com 2019 - 2024. All rights reserved.