using UnityEngine;
using System.Collections;
using System;
using System.IO;
public class CaptureScreenshotMgr: MonoBehaviour
{
/// <summary>
/// 保存截屏图片,并且刷新相册(Android和iOS)
/// </summary>
/// <param name="name">若空就按照时间命名</param>
public void CaptureScreenshot(string name = "")
{
string _name = "";
if (string.IsNullOrEmpty(name))
{
_name = "Screenshot_" + GetCurTime() + ".png";
}
//编辑器下
//string path = Application.persistentDataPath + "/" + _name;
//Application.CaptureScreenshot(path, 0);
//EDebug.Log("图片保存地址" + path);
//Android版本
StartCoroutine(CutImage(_name));
EDebug.Log("图片保存地址" + _name);
}
//截屏并保存
IEnumerator CutImage(string name)
{
//图片大小
Texture2D tex = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, true);
yield return new WaitForEndOfFrame();
tex.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0, true);
tex.Apply();
yield return tex;
byte[] byt = tex.EncodeToPNG();
string path = Application.persistentDataPath.Substring(0, Application.persistentDataPath.IndexOf("Android"));
File.WriteAllBytes(path + "/Pictures/Screenshots/" + name, byt);
string[] paths = new string[1];
paths[0] = path;
ScanFile(paths);
}
//刷新图片,显示到相册中
void ScanFile(string[] path)
{
using (AndroidJavaClass PlayerActivity = new AndroidJavaClass("com.unity3d.player.UnityPlayer"))
{
AndroidJavaObject playerActivity = PlayerActivity.GetStatic<AndroidJavaObject>("currentActivity");
using (AndroidJavaObject Conn = new AndroidJavaObject("android.media.MediaScannerConnection", playerActivity, null))
{
Conn.CallStatic("scanFile", playerActivity, path, null, null);
}
}
}
/// <summary>
/// 获取当前年月日时分秒,如201803081916
/// </summary>
/// <returns></returns>
string GetCurTime()
{
return DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString() + DateTime.Now.Day.ToString()
+ DateTime.Now.Hour.ToString() + DateTime.Now.Minute.ToString() + DateTime.Now.Second.ToString();
}
}
相关推荐
Unity3D截屏保存本地和上传方法
有时候会用到给模型制作模型的图片,就是那种每一个模型的样子,展示每一个模型的图片,如果你有现成的UI那就不需要了,如果没有就可以自己制作了,所以写了一个制作图片小工具,方便使用,简单记录一下大家好,我是心疼你的一切,不定时更新Unity开发技巧,觉得有用记得一键三连哦。下面就让我们进入正文吧!提示:以下是本篇文章正文内容,下面案例可供参考本次总结的就是截屏保存的实现,有需要会继续添加新的不定时更新Unity开发技巧,觉得有用记得一键三连哦。么么哒。
unity移动端截图后保存至相册
unity在移动端截图后会直接保存到系统的沙盒中,这个插件会通过调用ios和Android的原生api,将截图自动刷新到手机相册中。
Unity移动端实现屏幕截图及相册保存完整指南
随着移动游戏和应用的发展,提供截图分享功能已经成为提升用户体验的重要手段之一。在Unity游戏引擎中实现移动端截图功能不仅能帮助玩家记录游戏精彩瞬间,也是开发者进行内容营销的有效工具。本章将概述Unity移动端截图功能的基本概念和应用场景,同时分析为何在不同平台实现截图功能对开发者而言是一个挑战,以及怎样根据目标平台和设备特性进行选择和优化。通过理解Unity截图功能的基础知识,我们将在后续章节深入探讨如何在Unity中实现这一功能,并分享如何有效地保存、管理和优化截图数据。
unity调用相机拍照截屏保存到相册并刷新
unity 调用相机拍照截屏保存相册并刷新相册,不需要调用java方法
unity 截图/图片保存到手机相册
从unity保存图片到相册,游戏中需要一些保存图片到相册的操作,在这里分享一些自己在网上查的资料。话不多说直接上代码。 public IEnumerator getTexture2d(Texture2D t) { //截图操作 yield return new WaitForEndOfFrame(); //截图保存的图片 //Texture2D t = new Texture2D(Screen.width, Screen.he
unity3d 使用存档图片_Unity3d 截屏保存到相册,并且刷新相册
要做一个截图的功能,并且玩家可以在相册中看到。做的时候遇到了三个问题:1、unity自带的截图API,Application.CaptureScreenshot在Android上不生效2、图片保存的路径获取3、保存的图片可以在手机的文件管理中找到,但是相册中没有。解决方案:1、这个问题查了半天没有说原因,大多数人都给出了新方案用File.WriteAllBytes去实现,代码如下:IEnumer...
Unity下截屏并直接保存到相册的插件!
直接调用:ScreenshotHelper.iCaptureScreen(CaptureScreenCallBack);即可实现截屏。 函数void CaptureScreenCallBack(Texture2D texture2D) { new FilePathName().SaveTextureAs(texture2D,FilePathName.SaveFormat.JPG); } 是截屏成功后的回调函数,负责保存图片。 简单易用!经测试,无问题!
Unity安卓手机图片显示在相册中更新
用于Unity调用让安卓手机拍完的照片显示在手机的相册中 unity中保存完后调用刷新 AndroidJavaClass obj = new AndroidJavaClass("com.ryanwebb.androidscreenshot.MainActivity"); while(!photoSaved) { photoSaved = obj.CallStatic("scanMedia", path); yield return new WaitForSeconds(.1f); }
Unity截屏保存到相册并刷新android
Unity截屏保存到安卓手机相册中,在文件管理中可以看到,但是相册中看不到图片的问题 https://www.cnblogs.com/lihangppz/p/8530351.html
Unity截屏保存到安卓手机相册
1、首先本人同样用了和大家一样的方法在百度查了很久的资料,之后又看API,官方帮助文档,之后终于解决了这个问题。在网上查到的都是代码几乎都是一个模子刻出来的,现在贴上我自己查了资料后改的代码。 2、直接上源码,简单粗暴 using UnityEngine; using System.Collections; using System; using System.IO; using UnityEng...
(干货)Unity保存图片到手机相册并刷新相册(Android和IOS都有哦)
@这周末的时候帮同事做个东西,就是要保存图片到手机相册并且实现双端的,我一听一脸懵逼,我一个半路出家的Unity3D和CocosCreater 程序员不懂原生啊!没办法答应了就要做到。回到正题,下面直接出代码:(注:我这边是直接保存Image的内容,要是截图可能要你们自己实现啊) 这个是目录层级,Plugins/Android/classes,这个是C#调用安卓的刷新相册的方法 IOS文件夹里面的...
Unity之保存截图到手机相册并立即更新到系统图册
需求:保存图片到系统相册,并能通过微信手动发送该图片给好友。 遇到问题: 1.正常保存图片文件到手机磁盘,但是系统相册APP内看不到图片。 2.通过更新系统扫描后能看到了图片了,但部分国产芯片手机,图片是纯黑色。 解决方案如下: public void ARSnapCapture(){ isScreenShot = true; ...
Unity iOS截图并保存到手机相册总结
Unity iOS捕捉相机拍到的画面并截图保存到手机相册总结 本文专门针对小白,详细(图文)的写了通过unity 3d实现ios捕捉相机拍到的画面并截图保存到手机相册的方法。(对大佬来说可能写的略显繁琐 请自动忽略多余的话) 首先在unity 下创建代码如下: using System.Runtime.InteropServices; public class jietu : Mono...
Unity3D指定相机截屏并存储在手机相册中(安卓)
最近公司项目里需要截屏的功能,在网上找了好久,都没有合适的解决方法,有些方法已经不能用了,但是也给我提供了一些思路,通过一段时间的研究,解决了这个问题,现在和大家一起分享一下。 //下面是代码,可以直接用public class Screenshots : MonoBehaviour { //这个相机是用来截屏的,相机的Claer Flags 的属性选择为Depth Only public C
1442




被折叠的 条评论
为什么被折叠?



