1.下面是实现代码

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine; public class SaveJPG : MonoBehaviour
{
public GameObject[] gameObjects;
//string fileName = Application.streamingAssetsPath + "/UI/photo.jpg";
public Camera camera;
public Transform fuwutiParent;
public int jsq = 0;
public bool zx = false;
GameObject obj = null; private void Start()
{
//自动保存图片
//StartCoroutine(CloneTuPian());
}
private void Update()
{
#region 半自动保存图片手动对位置
if (Input.GetKeyDown (KeyCode.Space))
{
for (int i = 0; i < fuwutiParent.childCount; i++)
{
fuwutiParent.GetChild(jsq).gameObject.SetActive(true);
} }
if (Input.GetKeyDown (KeyCode.Alpha1))
{
string str_ = fuwutiParent.GetChild(jsq).name.Split('(')[0].ToString();
CaptureScreenByRT(str_);
fuwutiParent.GetChild(jsq).gameObject.SetActive(false);
jsq++;
Debug.Log(jsq);
}
#endregion
} IEnumerator CloneTuPian()
{
while (jsq<gameObjects .Length)
{
GameObject obj = Instantiate(gameObjects[jsq]);
string str_ = obj.transform.name.Split('(')[0].ToString ();
CaptureScreenByRT(str_);
Destroy(obj);
yield return new WaitForSeconds(1f);
jsq++;
}
Debug.Log("生成结束");
}
public void CaptureScreenByRT(string fileName)
{
Rect rect = new Rect(0, 0, 600, 600);
// 创建一个RenderTexture对象
RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, 0);
// 临时设置相关相机的targetTexture为rt, 并手动渲染相关相机
camera.targetTexture = rt;
camera.Render();
// 激活这个rt, 并从中中读取像素。
RenderTexture.active = rt;
Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
// 注:这个时候,它是从RenderTexture.active中读取像素
screenShot.ReadPixels(rect, 0, 0);
screenShot.Apply();
// 重置相关参数,以使用camera继续在屏幕上显示
camera.targetTexture = null;
RenderTexture.active = null;
GameObject.Destroy(rt);
// 最后将这些纹理数据,成一个png图片文件
byte[] bytes = screenShot.EncodeToPNG();
string path = Application.streamingAssetsPath + "/UI/"+ fileName + ".jpg";
System.IO.File.WriteAllBytes(path, bytes);
AssetDatabase.Refresh();
} }

直接使用即可

Unity 保存截图功能的更多相关文章

  1. appium 学习各种小功能总结--功能有《滑动图片、保存截图、验证元素是否存在、》---新手总结(大牛勿喷,新手互相交流)

    1.首页滑动图片点击 /** * This Method for swipe Left * 大距离滑动 width/6 除数越大向左滑动距离也越大. * width:720 *height:1280 ...

  2. Unity项目接入应用宝SDK实现截图功能

    Unity项目接入应用宝SDK实现截图功能 问题由来 点击应用宝悬浮窗 如图所示 左下角有一个截图按钮 需要解决那些问题 截图信息需要由游戏引擎提供 SDK获取截图信息为同步 但是Unity引擎没有提 ...

  3. canvas与html5实现视频截图功能

    这段时间一直在研究canvas,突发奇想想做一个可以截屏视频的功能,然后把图片拉去做表情包,哈哈哈哈哈哈~~ 制作方法: 1.在页面中加载视频 在使用canvas制作这个截图功能时,首先必须保证页面上 ...

  4. SDK截图程序(二):保存截图

    怎样将我们上一篇截取的位图保存在文件夹里.根据MSDN,思路是这样的,用CreateFile函数在磁盘建立一个bmp文件,用WriteFile填充该bmp文件的文件头.信息头,像素等信息.之前我们只有 ...

  5. Qt5:Qt中屏幕或窗口截图功能的实现

    要想在Qt中实现屏幕或窗口截图功能 ,通常有两种方法: 1  -- 使用 QPixmap 类 2  -- 使用 QScreen类 然而虽然俩两种方法用到的类不相同,但是调用到的类成员函数的函数名称和参 ...

  6. selenium提供的截图功能

    get_screenshot_as_file()提供一个截屏功能.在自动化执行过程中,执行失败后只能看到代码的运行错误,而不能直接看到ui上的错误,利用截屏保存下来很容易的进行问题的判断 先来执行一个 ...

  7. 封装selenium自动化框架中的截图功能

    对selenium自带的截图功能进行封装: 以下为封装的代码,自定义一个.py文件即可,图片路径自己设置一个. #coding:utf-8 class Screen(object): ''' 封装的截 ...

  8. WPF C#截图功能 仿qq截图

    原文:WPF C#截图功能 仿qq截图 先上效果图 源码下载地址:http://download.csdn.net/detail/candyvoice/9788099 描述:启动程序,点击窗口butt ...

  9. IOS VLC编译步骤(包含移植和截图功能)

    http://blog.csdn.net/Kan_Crystal/article/details/40424673 一.下载源码 先到VLC官网将源码下载到本机,以下链接为官网编译操作地址:https ...

  10. EasyPlayerPro Windows播放器本地快照抓拍截图功能实现方法

    背景描述 作为一个播放器,截图功能必不可少; 下面主要记录一下截图功能的实现: 实现流程 将解码后的帧进行格式转换(目标格式为RGB24); 采用独立的线程进行截图处理; 截图可保存为BMP或JPG两 ...

随机推荐

  1. vue-echarts数据可视化实现自适应屏幕进行缩放,这个我写了两篇文章,一个用了vue-echarts,一个直接用的charts ,我可真机智 啊~~~

    使用这个后可以实现屏幕自适应 效果如下 <template> <div style="width:100%;height:20rem" ref="res ...

  2. C# 托管堆 遭破坏 问题溯源分析

    一:背景 1. 讲故事 年前遇到了好几例托管堆被损坏的案例,有些运气好一些,从被破坏的托管堆内存现场能观测出大概是什么问题,但更多的情况下是无法做出准确判断的,原因就在于生成的dump是第二现场,借用 ...

  3. 《深入理解Java虚拟机》第三章读书笔记(一)——垃圾回收算法

    参考书籍<深入理解java虚拟机>周志明著 系列文章目录和关于我 本文主要介绍垃圾回收理论知识 1.jvm哪些区域需要进行垃圾回收 虚拟机栈,本地方法栈,程序计数器都是线程私有的,随线程而 ...

  4. Java基础1-1-1—java基础语法(数据类型及转换)

    JAVA基础 1.数据类型及转换 1.1 注释 注释是在程序指定位置添加的说明性信息 简单理解:对代码的一种解释说明,方便我们程序员更好的去阅读代码 // 单行注释 /* 多行注释 */ /**文档注 ...

  5. 静态static关键字概述-静态static关键字修饰成员变量

    静态static关键字概述 概述 关于 static 关键字的使用,它可以用来修饰的成员变量和成员方法,被修饰的成员是属于类的,而不是单单是属 于某个对象的.也就是说,既然属于类,就可以不靠创建对象来 ...

  6. Python 异步集群使用

    目前在做Python项目用到同步和异步的方法使用Redis单机,现在要增加兼容Redis集群.也就说当前项目用到中以下4种Python使用Redis的方法都用到了. - 同步 异步 单机 涉及 涉及 ...

  7. 【随笔记】SiliconLabs Android Demo 编译

    AndroidStudio:3.5.2 AndroidPhone:XiaoMi5 (Android 8.0) AndroidDemo:3.1.4-44 AndroidDemo 源码路径:Simplic ...

  8. Node.js学习笔记----day05(在Node中操作MySQL)

    认真学习,认真记录,每天都要有进步呀!!! 加油叭!!! 一.安装 初始化项目 安装mysql(这里的mysql是node用来操作mysql的一个第三方包,包的名字就叫mysql) 安装mysql包的 ...

  9. 城市路(Dijkstra)

    这道题目需要用到 Dijkstra plus 版(堆优化) 模板还是一样就是有几个点值得注意 1.这里用的是优先队列,原版需要搜出最小,并且没用过的点,省时间就剩在这里用小根堆就可以完美解决这个问题. ...

  10. IIS服务器SSL证书安装 (pfx文件不能直接运行时)

    在证书控制台下载IIS版本证书,下载到本地的是一个压缩文件,解压后里面包含.pfx文件是证书文件,pfx_password.txt是证书文件的密码. 友情提示: 每次下载都会产生新密码,该密码仅匹配本 ...