1

我想请教一些关于如何在 Unity 的 Kudan 插件中使用 StartInputFromImage 方法的指导。

假设我想使用街道的图像(例如:https ://upload.wikimedia.org/wikipedia/commons/3/39/Downtown_Temple,_TX_at_Main_Street_IMG_2384.JPG )作为将由 Kudan TrackingMethodMarkerless 处理的纹理.


在 Start() 的 KudanTracker 类中有如下代码: // 启动摄像头

#if UNITY_EDITOR
if (_trackerPlugin.StartInputFromCamera(_playModeWebcamID, DefaultCameraWidth, DefaultCameraHeight)) 
#else
if (_trackerPlugin.StartInputFromCamera(0, DefaultCameraWidth, DefaultCameraHeight)) 
#endif

我想我应该只是在这里改变输入法,所以我改变了它:

#if UNITY_EDITOR
if (_trackerPlugin.StartInputFromImage(myImage))
#else
if (_trackerPlugin.StartInputFromImage(myImage))
#endif

但是:当我在编辑器中运行应用程序时,Unity 崩溃并出现错误。我怀疑这可能是由于此方法的 TrackerWindows 实现如下所示:

public override bool StartInputFromImage(Texture2D image)
{
    // First stop existing input
    bool wasTracking = _isTrackingRunning;
    StopInput();
    // Resume tracking
    if (wasTracking)
    {
        StartTracking();
    }
    return true;
}

...我的意思是,这实际上对图像没有任何作用。

在 TrackerAndroid 中实现相同的方法看起来更有希望,所以我选择了它,因为毕竟我正在开发 Android 应用程序。

然而,这里的代码卡在 ArbiTrackGetPose() 方法中。

该过程如下所示:

1) 在 KudanTracker.Update() - _currentTrackingMethod.ProcessFrame() 被调用

2) 在 TrackingMethodMarkerless.ProcessFrame() - _kudanTracker.ArbiTrackGetPose(out position, outorientation) 被调用

3) 在 TrackerAndroid.ArbiTrackGetPose() - m_KudanAR_Instance.Call ("updateArbi", _floorHeight) 被调用但未正确执行,以下代码未编译。而且由于我无法完全检查“updateArbi”功能,我不知道出了什么问题。


我应该使用一些不同的方法吗?你看到我的错误了吗?感谢您的任何建议!

4

0 回答 0