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.
Witaj, flyzhao, udało Ci się to zrobić? Czy zmusiłeś kamerkę internetową lub kamerę urządzenia do skupienia się w Unity? – Joshua
@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