unity2019.3.11f1安卓交互之截圖並保存相冊+打開相冊剪裁併獲取圖片保存到相冊(安卓篇)

截圖並保存相冊

截圖代碼

代碼複製粘貼修改包名即可使用
測試環境=編譯環境(unity2019.3.11f1)+夜神模擬器+榮耀30

完整代碼請移步致豬哥亮博客

其中image是自己定義在UI場景中的圖片,意思就是截圖之後將圖片顯示在場景中並保存到相冊。另外需要注意的是在打包時需要將unity配置的Player Settings-》Other Settings下的Write Permission改爲External(SDcard),以上還有一個重要的方法ScanFile(paths);是用來刷新相冊的,設置unity配置和刷新相冊這兩部如果沒做在安卓機的相冊中會找不到圖片

刷新相冊

完整代碼請移步致豬哥亮博客

通過以上代碼就可以將unity場景中的界面進行截圖並顯示到場景對應的ui中並保存相冊刷新相冊,此時到相冊中去查看就可以看到對應的圖片

加載相冊圖片並顯示到場景的ui中

完整代碼請移步致豬哥亮博客

 

打開相冊並剪裁+操作的圖片保存相冊+顯示到場景中

這個需要調用安卓原生ipa接口、即java代碼,所以使用Android Studio新建工程寫java代碼,這過程默認你會的就不一步一步的教了 直接上代碼

調用安卓原生api的C#代碼

完整代碼請移步致豬哥亮博客

安卓原生api入口代買

完整代碼請移步致豬哥亮博客

需要注意unity2019之後UnityPlayerActivity並不在classes.class中而是單獨分離出來一個類在"你的unity安裝目錄\Editor\Data\PlaybackEngines\AndroidPlayer\Source\com\unity3d\player\UnityPlayerActivity.java"需要將其複製到Android Studio中才能正常使用,另外上面的"import com.unity3d.player.UnityPlayerActivity;"如果你放置的UnityPlayerActivity不是在對用的包下會報錯,但是導出的時候一定要是這個包引入否則unity打包是有問題的

接下來是對相冊圖片的處理WebViewActivity類

完整代碼請移步致豬哥亮博客

以上就是對圖片的處理和保存到相冊

AndroidManifest.xml配置文件

完整代碼請移步致豬哥亮博客

注意,以上程序入口的報名即:"xxx.xxx.xxx"不能使用Android Studio默認生成的"."代替,應爲unity打包之後也會有問題(親測)

完整的C#代碼

完整代碼請移步致豬哥亮博客

注:在本示例中上面的C#腳本需要掛載在Main Camera以爲在java原生代碼中的WebViewActivity$131行中的

 UnityPlayer.UnitySendMessage("Main Camera","GetPhoto",p);

第一個參數解釋Main Camera,如果你不想掛在Main Camera上只需把"Main Camera"改成你對應的對象名稱就行 最後將MainActivity.java和WebViewActivity.java複製到你的工程下的目錄Plugins>>Android>>libs下,然後將AndroidManifest.xml複製到你工程目錄Plugins>>Android下,然後打包(注意包名要和java代碼中的包名一致)

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章