(干货)Unity保存图片到手机相册并刷新相册(Android和IOS都有哦)

您所在的位置:网站首页 如何下载地图文件到手机相册 (干货)Unity保存图片到手机相册并刷新相册(Android和IOS都有哦)

(干货)Unity保存图片到手机相册并刷新相册(Android和IOS都有哦)

2024-07-12 04:48| 来源: 网络整理| 查看: 265

@这周末的时候帮同事做个东西,就是要保存图片到手机相册并且实现双端的,我一听一脸懵逼,我一个半路出家的Unity3D和CocosCreater 程序员不懂原生啊!没办法答应了就要做到。回到正题,下面直接出代码:(注:我这边是直接保存Image的内容,要是截图可能要你们自己实现啊) 在这里插入图片描述这个是目录层级,Plugins/Android/classes,这个是C#调用安卓的刷新相册的方法 IOS文件夹里面的两个文件分别是:.h和.mm文件,这个是调用OC的方法 首先简单的搭个界面,如下 在这里插入图片描述 然后创建一个类 SaveImage.cs,内容如下:

using System.Collections; using System.Collections.Generic; using System.IO; using System.Runtime.InteropServices; using UnityEngine; using UnityEngine.UI;

public class SaveImage : MonoBehaviour { public Image shareImage; private byte[] shareTex; // Start is called before the first frame update void Start() { shareTex = shareImage.sprite.texture.EncodeToPNG(); }

[DllImport("__Internal")] private static extern void _iosSaveImageToPhotosAlbum(string readAddr); public void SaveSharePicture() { string destination = "/sdcard/DCIM/"; //判断目录是否存在,不存在则会创建目录 if (!Directory.Exists(destination)) { Directory.CreateDirectory(destination); } string path = destination + "/" + "xxylShare.PNG"; //存图片 System.IO.File.WriteAllBytes(path, shareTex); Debug.Log("安卓");

#if UNITY_ANDROID var androidObject = new AndroidJavaObject(“com.xxyl.BitmapTools”); var activity = new AndroidJavaClass(“com.unity3d.player.UnityPlayer”).GetStatic(“currentActivity”); androidObject.Call(“refreshMedia”, activity, path); #elif UNITY_IPHONE path = Application.persistentDataPath + “/” + “xxylShare.PNG”; _iosSaveImageToPhotosAlbum(path) #endif } }

按钮绑定事件 SaveSharePicture,到这里基本上已经结束,如果直接测试的话会报错的(如果不是保存图片内容的话请忽略),如下: 在这里插入图片描述 这个错的意思就是说这个texture 是不可读取,这个是后需要你找到这个图片,在Inspector 上勾选Read/Write Enabled,如下:

在这里插入图片描述 等等 如果是安卓的话你需要把sdcard的权限打开,为什么是安卓的SdCard的权限呢,因为我们设置的保存位置是SdCard,在构建时,在playersetting/othersetting,如下: 在这里插入图片描述 写入权限设置为:External(SDCard)即可打包测试了。 这里说一些IOS的问题,在代码里面可以看到IOS的保存位置和Android是不一样的,IOS直接保存的可读写的路径而不是sdCard(原谅我不懂IOS开发,不知道怎么改),原因是IOS打包后,测试发现IOS在sdCard是没有权限的,后来想起了可读写文件夹,就试了一些,结果成功了。 最后教程结束,demo还在审核,需要的直接去我的资源区下载



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3