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