目前,我正在使用 Unity3D 开发一些增强现实移动应用程序。性能受图像质量影响。
有没有办法让网络摄像头使用 Unity3D 自动对焦?
目前,我正在使用 Unity3D 开发一些增强现实移动应用程序。性能受图像质量影响。
有没有办法让网络摄像头使用 Unity3D 自动对焦?
据我所知,这在纯 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 插件的更多信息。