How to ask webcam to auto focus with Unity3D

为君一笑 提交于 2019-12-07 01:11:06

问题


Currently, I am working on some Augmented Reality mobile app with Unity3D. The performance is impacted by the image quality.

Is there some way to ask webcam to auto focus with Unity3D?


回答1:


As far as I know it is not possible in pure Unity3D.

However, if you are developing this on Android, you can write a plugin in java, which sets autofocus and call it from 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);
}

And then, you have to call your class from Unity3D:

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

You can find more info about creating Java plugins for Unity3D here.



来源:https://stackoverflow.com/questions/19076316/how-to-ask-webcam-to-auto-focus-with-unity3d

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!