Unity3D网络摄像头自动对焦回调?

时间:2015-09-08 08:08:16

标签: android ios unity3d webcam autofocus

我想使用Unity从相机拍照。拍摄照片本身并不是什么大问题,但我想要更准确的使用自动对焦回调方法,如Android(onAutoFocus(布尔成功,相机相机))所以如果回调返回成功,我可以拍照。有没有办法在Unity中做到这一点,或者我需要一些插件?如果有人可以参考吗?非常感谢!

1 个答案:

答案 0 :(得分:1)

资产商店有一个名为Camera Capture Kit的插件似乎可以做你想要的。我们使用该代码在Android和iPhone上都可以使用这些功能。

CameraCapture.UnitySetFocusMode( webCamTextureReferance, FocusModes.Autofocus );

相机拍摄套件附带即插即用相机应用程序,可启用自动对焦 - 您可以通过调用设置自动对焦模式。

[camDevice addObserver:self forKeyPath:@"adjustingFocus" options:flags context:nil];

这将代表AVCaptureFocusModeAutoFocus,您应该能够通过在文件Assets / Tastybits / Native / iOS / CameraCapture.mm中的函数initCapture中添加一段代码来自动触发焦点事件的回调:

- (void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context {
if( [keyPath isEqualToString:@"adjustingFocus"] ){
    BOOL adjustingFocus = [ [change objectForKey:NSKeyValueChangeNewKey] isEqualToNumber:[NSNumber numberWithInt:1] ];
    NSLog(@"Is adjusting focus? %@", adjustingFocus ? @"YES" : @"NO" );
    if(adjustingFocus)
      UnitySendMessage( "FocusController", "FocusChanged", "1" );
    else 
      UnitySendMessage( "FocusController", "FocusChanged", "0" );
}}

现在,当在iOS上进行焦点时,Camera Capture Kit不会给你一个回调,所以你必须自己添加它并使用SendMessage自己回调统一。

{{1}}