經過諸多摸索與Android端、IOS端的相機相冊插件尋找與改寫
先是在github中找到了一個UnityNativeCamera的項目,經過測試可以在安卓與IOS雙端完美運作,隻是缺少相冊功能。
後來經過修改項目安卓代碼與ios代碼,搞出了一個基于這個項目混合了相機與相冊的插件。
但是,接下來才是重點!
在我混合插件制作完成已經上線使用的幾個月後,我偶然間發現了該項目的作者github上另外一個項目... UnityNativeGallery
該項目實作IOS與Android雙端的打開相冊與儲存功能,于是我立即進行測試,發現也是完美,并且安卓端與IOS端回調方式統一。
于是我對這兩個項目進行了功能整合,并且制作了測試場景與功能統一封裝、IOS端打包權限合并
基本修改為:添加了NativeCall類作為統一調用,增加了測試場景,與SampleCamera.cs測試代碼,修改了PostProcessBuild.cs打包IOS端的權限代碼為相機+相冊+視訊等
并且插件導入無需任何設定即可通用所有版本安卓與IOS
現在可以非常友善的導入即用
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLwkERNVTRq50MFRUT4d2MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnLygzM2IjN0YTMyEzMwAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
調用測試:
//打開相機
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