6

目前,我正在使用 Unity3D 开发一些增强现实移动应用程序。性能受图像质量影响。

有没有办法让网络摄像头使用 Unity3D 自动对焦?

4

1 回答 1

6

据我所知,这在纯 Unity3D 中是不可能的。

但是,如果你在 Android 上开发这个,你可以在 java 中编写一个插件,它设置自动对焦并从 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);
}

然后,你必须从 Unity3D 调用你的类:

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

您可以在此处找到有关为 Unity3D 创建 Java 插件的更多信息。

于 2014-09-30T13:40:22.300 回答