天天看點

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