Unity 的 ImageTrackerBehaviour 實踐錯誤

+2 投票
最新提问 9月 10, 2019 用户: newyellow2 (140 分)
修改于 9月 11, 2019 用户:newyellow2
在 EasyAR 更新到 3.0 以後,發現 image tracking 時會有一種延遲的感覺

本以為是 EasyAR 3.0 自動做了 smooth 的效果(為了讓辨識的抖動減少)

但剛剛仔細看了一下 Unity 的 SDK,發現 ImageTrackerBehaviour 裡面有一個很奇怪的寫法

我發現 Unity 的腳本裡向 plugin 索取辨識結果是來自於這一行:

var pose = Utility.Matrix44FToMatrix4x4(targetInstance.pose());

接著會再把這個數值轉給 centerTransform:

centerTransform = pose.inverse;

但奇怪的是,把這個數值轉給 camera 的程式碼,卻是在取得 pose 之前

Utility.SetMatrixOnTransform(Camera.main.transform, centerTransform);

所以每個 frame 的攝影機位置,其實是上一禎的辨識結果,所以看起來才會有延遲的感覺

我把這行放到該 function 的最後,就解決這個問題了

1个回答

+1 投票
最新回答 12月 31, 2019 用户: kenn (19,220 分)
感谢反馈。

4.0已经修复该问题。3.0的修复版也将于近日上线。
欢迎来到 EasyAR Q&A ,有什么不懂的可以尽管在这里提问,你将会收到社区其他成员的回答。
...