Per quanto ne so non è possibile in puro Unity3D.
Tuttavia, se lo si sta sviluppando su Android, è possibile scrivere un plugin in java, che imposta l'autofocus e chiamarlo da 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);
}
E poi, è necessario chiamare la classe da Unity3D:
public class ExampleClass : MonoBehaviour {
void Start() {
AndroidJavaObject jo = new AndroidJavaObject("com.mypackage.Autofocus");
jo.Call("enableAutofocus");
}
}
è possibile trovare ulteriori informazioni sulla creazione di plug-in Java per Unity3D here.
Ciao flyzhao, l'hai fatto con successo? Hai forzato la webcam o la fotocamera del dispositivo a mettere a fuoco da dentro Unity? – Joshua
@Joshua Non ci sto lavorando adesso. Ma puoi trovare alcuni plugin nativi per Android da un punto di vendita. Potrebbe risolvere questo problema. Inoltre, penso che la risposta di kao sia buona. Sarebbe il metodo migliore, se conosci qualche conoscenza nativa su Android. – flyzhao