2013-09-29 10 views
6

Obecnie pracuję nad aplikacją mobilną Augmented Reality z Unity3D. Na wydajność ma wpływ jakość obrazu.Jak poprosić kamerę internetową o automatyczne ustawianie ostrości za pomocą Unity3D

Czy istnieje sposób, aby poprosić kamerę internetową o automatyczne ustawienie ostrości za pomocą Unity3D?

+0

Witaj, flyzhao, udało Ci się to zrobić? Czy zmusiłeś kamerkę internetową lub kamerę urządzenia do skupienia się w Unity? – Joshua

+1

@Joshua Nie pracuję nad tym teraz. Ale możesz znaleźć niektóre oryginalne wtyczki dla Androida ze sklepu z zasobami. Może rozwiązać ten problem. Poza tym myślę, że odpowiedź Kao jest dobra. Byłaby to najlepsza metoda, jeśli znasz jakąś rodzimą wiedzę na temat Androida. – flyzhao

Odpowiedz

6

O ile mi wiadomo, nie jest to możliwe w czystym Unity3D.

Jeśli jednak tworzysz to na Androida, możesz napisać wtyczkę w java, która ustawia autofokus i wywołuje go z Unity3D.

public void enableAutofocus() { 
    camera = camera.open(); 
    Camera.Parameters parameters = camera.getParameters(); 
    List<String> focusModes = parameters.getSupportedFocusModes(); 
    if (focusModes.contains(Camera.Parameters.FOCUS_MODE_AUTO)) { 
     parameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO); 
    } 
    camera.setParameters(parameters); 
} 

A potem, trzeba zadzwonić do klasy z Unity3D:

public class ExampleClass : MonoBehaviour { 
    void Start() { 
     AndroidJavaObject jo = new AndroidJavaObject("com.mypackage.Autofocus"); 
     jo.Call("enableAutofocus"); 
    } 
} 

można znaleźć więcej informacji na temat tworzenia wtyczek Java dla Unity3D here.

+0

Cześć Kao, jesteś pewien, że to możliwe? Czy próbowałeś tego sam? Mój wydaje się nie działać ... – Joshua

+0

Czy możesz mi pomóc ponownie napisać ten fragment nowego "aparatu"? Jestem bardzo zdezorientowany ... Potrzebuję tylko metody "enableAutofocus", aby otworzyć kamerę i ustawić ostrość. Dzięki – Joshua

Powiązane problemy