Unity3d的ios插件开发
2015/04/05戴维营教育原创文章,转载请注明出处。我们的梦想是做最好的iOS开发培训!
Unity3D是一个非常强大的跨平台游戏引擎,但还是也免不了需要访问平台本身的一些功能。Unity3D并没有将平台方方面面都创建对应的API,尤其是比较新的一些功能。这时需要我们自己编写本地插件来解决,本文主要介绍如何开发Unity3D的iOS本地相册插件GlobalBrowser(能够自动扫描Documents目录,并且使用照片墙展示,其中展示功能使用了一个Objective-C的开源控件MWPhotoBrowser)。
准备工作
本文使用Unity 5和Xcode 6.2进行开发,目前只有Unity 4.6和Unity 5支持arm64,并且只有Unity 5支持在插件中使用子目录。我们有三种使用Objective-C代码的方式:源码、静态库(.a)和框架(iOS 8),这一次我们选择纯源码的方式。
本地代码编写
1、新建iOS的项目PhotoBrowser,在项目目录下创建Library文件夹。
2、将MWPhotoBrowser以及所使用的其它开源代码复制到Library,并添加到Xcode项目中。
3、创建GlobalBrowser目录,然后创建DVIGlobalBrowser类。我们在这个类中实现图片浏览插件的本地代码。为了简单起见,我们只实现了几个类方法,然后使用一个静态变量保存对象。
#import <Foundation/Foundation.h>
@interface DVIGlobalBrowser : NSObject
+ (void)show;
+ (void)dismiss;
@end
/实现代码
#import "DVIGlobalBrowser.h"
#import <UIKit/UIKit.h>
#import "MWPhotoBrowser.h"
#import "MWPhoto.h"
static DVIGlobalBrowser *sharedInstance = nil;
@interface DVIGlobalBrowser () <MWPhotoBrowserDelegate>
{
NSArray *_photosArray;
NSString *_photoDir;
}
@property (nonatomic, strong) MWPhotoBrowser *photoBrowser;
@end
@implementation DVIGlobalBrowser
+ (