2016-08-11 4 views
0

Я являюсь новым для Unity 3D и C#. Также я не совсем уверен, как работает какое-то решение по произвольному отслеживанию Kudans. В настоящее время я использую SDK Unity Kudan для создания решения для позиционного отслеживания VR, по крайней мере, я попробую его. Теперь мой план:Unity 3D Kudan «Place Markerless Object» всякий раз, когда сетка оставляет экран?

  1. Всякий раз, когда сетка покидает экран, я хочу, чтобы заморозить положение подмигнули и найти новые точки функций (кнопка «место безмаркерных объект» делает это: Найти новую точку функции и место сетка).
  2. После того, как он обнаружил новые точки отличия (которые должны быть миллисекундами), он размораживает положение сетки и использует новые точки функции для дальнейшего изменения ее положения.

Идея «найти новую точку» необходима, потому что всякий раз, когда сетка и старые точки функции покидают экран, отслеживание будет очень неточным.

я уже попробовал это в 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 
 
      } 
 
     }

Но теперь won't трек правильно отслеживать больше, также i'm вполне уверен ArbiTrackIsTracking() won't быть решение для этого, потому что оно не потеряет отслеживание, когда сетка покидает экран.

У вас есть вопросы решить эту проблему?

+0

Если вы хотите знать, когда сетка покинула экран, это может быть стоит проверить ___ Renderer.isVisible ___. Теоретически, как только он покидает камеру, он автоматически выбирается для достижения целей, и в этот момент он больше не считается видимым. В этот момент ваш код будет работать. Я думаю, что это решит вашу проблему. Обратите внимание, что при использовании ___ Renderer.isVisible ___, если вы начинаете использовать тени по какой-либо причине, тогда вы можете столкнуться с проблемой, когда объект по-прежнему считается видимым даже во время вне экрана для целей визуализации теней. – DisturbedNeo

ответ

0

Если я хорошо понимаю, вы хотите изменить положение 3d-модели с помощью триггера, как только ваша 3d-модель исчезнет на экране. И вы правы, ArbiTrackIsTracking() остаются верными, даже если 3D-модель выходит из экрана, потому что, если вы снова перемещаете свой экран вокруг 3d-модели, трехмерная модель будет всегда отслеживаться. Но если вы слишком сильно перемещаете свой смартфон, отслеживание останавливается.

Моя идея заключается в том, чтобы получить позицию вашего 3D-маркера без рамки, потому что 3d-модель перемещает в функции положение и ориентацию вашего смартфона для отслеживания. Итак, вы можете занять позицию момента, когда ваша 3D-модель начинает отслеживаться. Затем вы даете значение, которое будет соответствовать разнице в сохранении первой и последней позиции. И если это различие получается, вы прекратите отслеживание с остановкой арбитража.

если у вас есть другой вопрос, который вы можете задать на моей учетной записи в Twitter @ModeLolito, я мог бы ответить быстрее. И вы можете смотреть мой канал на YouTube, чтобы увидеть мои работы на Кудане https://www.youtube.com/user/modelisationLolito

 Смежные вопросы

  • Нет связанных вопросов^_^