天天看点

Unity调用安卓、IOS 相机、相册、保存图片的插件

经过诸多摸索与Android端、IOS端的相机相册插件寻找与改写

先是在github中找到了一个UnityNativeCamera的项目,经过测试可以在安卓与IOS双端完美运行,只是缺少相册功能。

后来经过修改项目安卓代码与ios代码,搞出了一个基于这个项目混合了相机与相册的插件。

但是,接下来才是重点!

在我混合插件制作完成已经上线使用的几个月后,我偶然间发现了该项目的作者github上另外一个项目... UnityNativeGallery

该项目实现IOS与Android双端的打开相册与保存功能,于是我立即进行测试,发现也是完美,并且安卓端与IOS端回调方式统一。

于是我对这两个项目进行了功能整合,并且制作了测试场景与功能统一封装、IOS端打包权限合并

基本修改为:添加了NativeCall类作为统一调用,增加了测试场景,与SampleCamera.cs测试代码,修改了PostProcessBuild.cs打包IOS端的权限代码为相机+相册+视频等

并且插件导入无需任何设置即可通用所有版本安卓与IOS

现在可以非常方便的导入即用

Unity调用安卓、IOS 相机、相册、保存图片的插件

调用测试:

//打开相机
    private void OpenCamera()
    {
        NativeCall.OpenCamera((Texture2D tex)=>
        {
            rawImage.texture = tex;
            rawImage.rectTransform.sizeDelta = new Vector2(tex.width, tex.height);
        });
    }
    //打开相册
    private void OpenPhoto()
    {
        NativeCall.OpenPhoto((Texture2D tex) =>
        {
            rawImage.texture = tex;
            rawImage.rectTransform.sizeDelta = new Vector2(tex.width, tex.height);
        });
    }
    //保存照片
    private void SavePhoto()
    {
        NativeCall.SavePhoto(rawImage.texture as Texture2D);
    }
           

下面是我整合的项目github地址,觉得有用的请务必点个小星星哦~

https://github.com/gameguo/UnityCamera

此外,如果只需要相机功能或者相册功能的话也可以找原作者github链接,个人觉得作者如果做到一起就更好了,因为安卓与ios两个插件内部有很多工具方法是重复的:

UnityNativeCamera

UnityNativeGallery

致敬原作者!原作者在AssetStore上传了插件,也都是免费有兴趣可以看看,不过都是单独的相机和单独的相册功能:

https://assetstore.unity.com/packages/tools/integration/native-camera-for-android-ios-117802

https://assetstore.unity.com/packages/tools/integration/native-gallery-for-android-ios-112630