2016-01-14 1 views
0

У меня есть игра в единстве, и я хочу, чтобы пользователь менял фон с камеры или фотогалереи в IOS, я знаю, что мне нужно сделать библиотеку в объективе c, и Я знаю, как открыть камеру или галерею фотографий в объективном с помощью этого кодаСделайте плагин iOS, чтобы открыть камеру и фотогалерею из единства

-(void)getImage{ 

    UIImagePickerController *imagePickerController = [[UIImagePickerController alloc]init]; 
    imagePickerController.delegate = self; 
    imagePickerController.sourceType = UIImagePickerControllerCameraCaptureModePhoto; 
    [self presentViewController:imagePickerController animated:YES completion:nil]; 

} 


- (void) imagePickerControllerDidCancel:(UIImagePickerController *) picker { 

    [picker dismissViewControllerAnimated:YES completion:^{}]; 
} 

- (void)imagePickerController : (UIImagePickerController *) picker didFinishPickingImage:(UIImage *)imageProfile editingInfo:(NSDictionary *) editingInfo 
{ 

    [picker dismissModalViewControllerAnimated:YES]; 

} 

но, как использовать этот код в Objective C библиотеки

+0

Если вы просто хотите открыть Фотогаллерею/фотоальбом и выбрать изображение, которое вы, возможно, захотите посмотреть: http://forum.unity3d.com/threads/introducing-native-gallery-assist-ios- Android-редактор emulator.403459 / – Chris

ответ

0

Если вы хотите использовать камеры Picker для Unity для изображения gallery Я предлагаю вам написать плагин, обертывающий API, который вы описываете сами. Что-то вроде:

extern "C" char* _ImagePickerOpen (int type, bool frontFacingIsDefault, char* callbackName) { 

Тогда внутри ImagePickerOpen вы должны быть в состоянии инициализировать Галерею с кодом вы уже обеспечили себя.

Когда изображение было выбрано, я предлагаю вам использовать что-то вроде этого кода, чтобы сохранить изображение на диске и вернуть URL-адрес для единства, чтобы использовать его. Это один из подходов, но вы также можете закодировать base64 и вернуть его как одну большую строку.

-(void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)info { 
callCount++; 

// Image : 
image = [self scaleAndRotateImage:image]; 

// Image data: 
NSData *imageData = UIImageJPEGRepresentation(image,0.6); 
NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES); 
NSString *path=[[paths objectAtIndex:0] stringByAppendingPathComponent:@"temp.jpg"]; 

NSString *fileUri=[NSString stringWithFormat:@"file:%@?ori=%d&cnt=%d",path,image.imageOrientation,callCount]; 

strcpy(fileUriStr, (char*)[fileUri UTF8String]); 

[imageData writeToFile:path atomically:YES]; 

self.lastImageUri = fileUri; 
[self.imagePicker.presentingViewController dismissModalViewControllerAnimated:YES]; 

UnityGaleryCallback(fileUri);} 

Код, указанный выше, является плагином, который мы сделали за один раз. Если вы хотите использовать ImagePicker для съемки фотографий с помощью встроенных функций Apple, но не только в галерее, я предлагаю вам изучить что-то вроде Camera Capture Kit - (https://www.assetstore.unity3d.com/en/#!/content/56673), так как это должно позволить вам больше контролировать захваченное изображение.

Смежные вопросы