2017-01-12 9 views
2

Я использую Vuforia 6.2 AR SDK для Unity. Но пока я тестирую приложение на телефоне Android, камера кажется размытой. Я искал веб-сайт разработчика Vuforia и нашел режим фокусировки камеры, но я не могу реализовать, потому что это руководство было для более старого Vuforia SDK, я не могу найти сценарий, который они упомянули на своем веб-сайте. Вот пример кода, но он не работает. Я создал другой скрипт и запускаю эту строку в функции Start(), но все еще не работает.Как изменить режим фокусировки камеры Vuforia AR?

CameraDevice.Instance.SetFocusMode(
     CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO); 
+0

В комплект поставки входят примеры, включающие меню (дважды нажмите на свой телефон, чтобы показать его), в котором вы можете переключать автофокус. Если это не работает, вероятно, проблема заключается в вашем устройстве. – Vancete

+0

Убедитесь, что вы указали это в верхней части своего скрипта: используя Vuforia; –

ответ

2

попробовать это

void Start() 
{ 
    VuforiaBehaviour.Instance.RegisterVuforiaStartedCallback(OnVuforiaStarted); 
    VuforiaBehaviour.Instance.RegisterOnPauseCallback(OnPaused); 
} 

private void OnVuforiaStarted() 
{ 
    CameraDevice.Instance.SetFocusMode(
     CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO); 
} 

private void OnPaused(bool paused) 
{ 
    if (!paused) // resumed 
    { 
     // Set again autofocus mode when app is resumed 
     CameraDevice.Instance.SetFocusMode(
      CameraDevice.FocusMode.FOCUS_MODE_CONTINUOUSAUTO); 
    } 
} 
+1

Привет, Шубхам, вы правы! Но вам нужно заменить «VuforiaBehaviour» на «VuforiaARController». Такие как: VuforiaARController.Instance.RegisterVuforiaStartedCallback (OnVuforiaStarted); \t \t VuforiaARController.Instance.RegisterOnPauseCallback (OnPaused); – XpressGeek

+0

Очень жаль, что они обновили SDK, но еще не обновили документацию! Я изменил первые 2 строки, теперь он работает для меня! Отредактируйте свой код, и я отвечу ему как ответ. Спасибо – XpressGeek

+0

@Turzo Спасибо, я изменю его –

0

Этот код является правильным кодом.

bool cameramode = false; 
public void OnCameraChangeMode() 
{ 
    Vuforia.CameraDevice.CameraDirection currentDir = Vuforia.CameraDevice.Instance.GetCameraDirection(); 
    if (!cameramode) { 
     RestartCamera(Vuforia.CameraDevice.CameraDirection.CAMERA_FRONT); 
     camBtnTxt.text = "Back Camera"; 
    } else { 
     RestartCamera(Vuforia.CameraDevice.CameraDirection.CAMERA_BACK); 
     camBtnTxt.text = "Front Camera"; 
    } 
} 

private void RestartCamera(Vuforia.CameraDevice.CameraDirection newDir) 
{ 
    Vuforia.CameraDevice.Instance.Stop(); 
    Vuforia.CameraDevice.Instance.Deinit(); 
    Vuforia.CameraDevice.Instance.Init(newDir); 
    Vuforia.CameraDevice.Instance.Start(); 
} 
+0

Привет, 1-й ответ, предоставленный @Subham, был правильной вещью, которую я искал. Спасибо за Ваш ответ! :) – XpressGeek

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

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