我对Unity 3D和C#有点新鲜。另外我不完全确定如何Kudans任意跟踪解决方案详细工作。我目前正在使用Unity Kudan SDK来构建VR位置跟踪解决方案,至少我会尝试它。现在我的计划是:Unity 3D Kudan“放置无标记物体”每当网格离开屏幕?
- 每当网格离开屏幕,我想冻结it's位置,并寻找新的特征点(以下简称“地方无标记对象”按钮是这样做的:寻找新的功能点和地点一个网格)。
- 一旦它找到新的特征点(应该是毫秒级的),它会解除网格的位置并使用新的特征点来进一步改变它的位置。
“找到新的特征点”的想法是必要的,因为无论何时网格和旧特征点离开屏幕,跟踪将变得非常不准确。
我已经尝试过这SampleApp.cs:
bool VRSignal;
public void Start()
{
//Get Bools from "KudanTracker"
GameObject g = GameObject.Find("Kudan Camera");
KudanTracker bScript = g.GetComponent<KudanTracker>();
bool VRSignal = bScript.ArbiTrackIsTracking();
}
public void Update()
{
if(VRSignal == false)
{
// from the floor placer.
Vector3 floorPosition; // The current position in 3D space of the floor
Quaternion floorOrientation; // The current orientation of the floor in 3D space, relative to the device
_kudanTracker.FloorPlaceGetPose(out floorPosition, out floorOrientation); // Gets the position and orientation of the floor and assigns the referenced Vector3 and Quaternion those values
_kudanTracker.ArbiTrackStart(floorPosition, floorOrientation); \t \t \t \t // Starts markerless tracking based upon the given floor position and orientations
}
}
但现在它不需额外的轨道正确地跟踪了,还i'm很肯定ArbiTrackIsTracking()不会致使是解决方案是因为它在网格离开屏幕时不会失去跟踪。
你有什么想法来解决这个问题吗?
如果你想知道网格何时离开屏幕,可能值得检查___ Renderer.isVisible ___。从理论上讲,一旦它离开照相机视图,就会出于性能目的自动剔除它,此时它不再被视为可见。此时,您的代码将运行。我认为这会解决你的问题。 请注意,当使用___ Renderer.isVisible ___时,如果您出于任何原因开始使用阴影,则可能会遇到问题,即即使在屏幕外用于呈现阴影的目的,对象仍然被视为可见。 – DisturbedNeo