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代码中的包名一致)

你可能感兴趣的:(c#,java,android,unity)