我想请教一些关于如何在 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”功能,我不知道出了什么问题。
我应该使用一些不同的方法吗?你看到我的错误了吗?感谢您的任何建议!