CaptureScreenshot捕捉画面截图截屏
通过unity内置的截图功能,也有几种方法:
1,通过Application.CaptureScreenshot来截图,这种方式最简单,一行代码搞定,缺点也很明显,比如不能选择区域,不能选择图片格式,不能屏蔽某些对象等等;
2,通过Texture2D.ReadPixels来读取屏幕区域像素,然后通过EncodeToJPG/EncodeToPNG编码,最后创建文件保存,步骤繁琐,但可控性更高;(注意这个 的协程 必须在 OnGUI 中调用才可以)
3,通过一个RenderTexture渲染相机内容,然后读取RenderTexture的像素,然后用2.2的方式实现截图,可控性更高,可以增加各种效果,可以实现屏蔽等功能;
账号Unity提供了这个游戏截屏的功能, 现在我们就来实现一下这个东东吧。
Application.CaptureScreenshot
static void CaptureScreenshot(string filename, int superSize = 0);
文件默认被保存在这个路径:persistent data path
那么图片我们存储在哪里呢? 在移动设备上的路径,我们有一下几种:
Application.dataPath:
此属性用于返回程序的数据文件所在文件夹的路径。例如在Editor中就是Assets了。
Application.streamingAssetsPath:
此属性用于返回流数据的缓存目录,返回路径为相对路径,适合设置一些外部数据文件的路径。
Application.persistentDataPath:
此属性用于返回一个持久化数据存储目录的路径,可以在此路径下存储一些持久化的数据文件。这个路径是可读可写的
Application.temporaryCachePath:
此属性用于返回一个临时数据的缓存目录。
android平台
Application.dataPath:
/data/app/xxx.xxx.xxx.apk
Application.streamingAssetsPath:
jar:file:///data/app/xxx.xxx.xxx.apk/!/assets
Application.persistentDataPath:
/data/data/xxx.xxx.xxx/files
Application.temporaryCachePath:
/data/data/xxx.xxx.xxx/cache
IOS平台
Application.dataPath:
Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data
Application.streamingAssetsPath:
Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/xxx.app/Data/Raw
Application.persistentDataPath:
Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Documents
Application.temporaryCachePath:
Application/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/Library/Caches
我们就是在游戏界面中绘制一个Button(位置要选择好不要碍事), 这个脚本最好是 永远不被销毁的,这样就可以一直可用了。
单击按钮就及时的捕捉到问题的画面就OK了。
(我以前在这篇文章中也写过类似的代码了:http://blog.csdn.net/u010019717/article/details/43113305)
[csharp] view plain copy
- using UnityEngine;
- using System.Collections;
- using System;
- /// <summary>
- /// 用于对游戏的画面进行捕捉,就是截屏
- /// 测试可以使用,对问题捕捉下来
- /// </summary>
- public class ScreenShoter : MonoBehaviour
- {
- public string filePath = Application.dataPath;
- void Awake()
- {
- DontDestroyOnLoad(transform.gameObject);
- }
- void OnGUI()
- {
- if (GUI.Button(new Rect((Screen.width - 60) * 0.5f, 0, 60, 30), "截屏"))
- {
- Application.CaptureScreenshot(string.Format("{0}\\ss_{1}x{2}_{3}.jpg",
- filePath, Screen.width, Screen.height, System.DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc)).TotalSeconds));
- }
- }
- }
CaptureScreenshot捕捉画面截图截屏相关推荐
- ARFoundation入门教程U2-AR场景截图截屏
ARFoundation入门教程U2-AR场景截图截屏 <ARFoundation入门教程U1-android权限申请和配置升级>配置了android权限申请,获取权限后使用代码截屏,AR ...
- 怎么用计算机截图快捷键,电脑怎么截图截屏 电脑截图的快捷键是什么
电脑怎么截图截屏 电脑截图的快捷键是什么 来源:www.18183.com作者:皮卡时间:2015-10-23 很多人打开电脑的时候就会习惯性的登上各类社交应用,例如QQ.阿里旺旺.微博客户端等,这些 ...
- mac录屏快捷键 - mac截图截屏快捷键 - 自带录屏软件QuickTime Player如何使用
mac截图截屏快捷键 全屏截图 command + shift + 3 (截图文件自动保存到桌面) 区域截图 command + shift + 4 再用鼠标框选截图范围(截图文件自动保存到桌面) ...
- 荣耀android手机怎么截图,华为荣耀畅玩5C怎么截图/截屏方法教程
华为荣耀畅玩5C怎么截图/截屏方法教程 来源:www.18183.com作者:皮卡时间:2016-04-29 作为荣耀今年的首款开年作品,该机受到了很多用户们的关注,而小编也相信有不少花粉们已经入手了 ...
- 截图截屏小工具Snipaste简单易用
截图截屏小工具Snipaste简单易用 百度网盘地址:https://pan.baidu.com/s/195T96Al-plXSxXezTdybqg
- 树莓派(Raspberry Pi)中如何截图截屏(截图)
树莓派(Raspberry Pi)中截图截屏(截图) 需要使用scrot软件,在Raspberry Pi OS安装过程中,如果你选择的是Raspberry Pi OS with Desktop and ...
- 七种影视截图截屏小方法
方法一: Windows Media Player10 首先介绍,最简单的视频截图方法.Media Player10是常用的视频播放器,也可以视频截图.我们在播放电影的过程中,遇到想截取的图片,只需按 ...
- 七种影视截图截屏的小方法
方法一: Windows Media Player10 首先介绍,最简单的视频截图方法.Media Player10是常用的视频播放器,也可以视频截图.我们在播放电影的过程中,遇到想截取的图片,只需按 ...
- java实现录屏_java录屏截屏: 用java代码实现的录屏和截图截屏,并在springboot上实现...
由于习惯了springboot 所以就写在springboot上了,并暴露了一个接口来触发录屏功能 核心代码在fxbase包下的VideoRecorder类中 但是代码写的有点乱,使用者可以不必过度关 ...
最新文章
- 清华《摸鱼学导论》开班啦!1000多学子在线摸鱼,无期末考试
- ROC曲线是通过样本点分类概率画出的 例如某一个sample预测为1概率为0.6 预测为0概率0.4这样画出来,此外如果曲线不是特别平滑的话,那么很可能存在过拟合的情况...
- 六:Dubbo与Zookeeper、SpringMvc整合和使用
- 根据当前系统日期求出本周,本月,本年,上周,上月,上年的第一天
- 2021-05-08 docker 拷贝东西到镜像,和拷贝到宿主机
- websocket 更新点位 浏览器卡顿_我们来看看Swoole是如何实现WebSocket服务器及客户端的...
- python基础的学习
- 10php1c,PHP程序员,进阶选择C还是C++亦或者别语言
- i.MX31主要开发资源(转贴)
- matlab gui 数据处理,基于MATLAB GUI的数据处理分析界面的设计与应用
- Java项目:springboot宠物医院管理系统
- 季琦谈创业:三对矛盾和三个关口[转]
- 举个栗子!Tableau 技巧(185):实现多度量嵌套排序
- 2021金山WPS秋招前端笔试题
- 品牌制造商做电子商务的成本结构分析
- 第5章 SIM卡锁定PIN解锁流程
- 基于Spring Boot 2.5.1 微服务框架发布(Eurynome Cloud )
- 请更换备份电池 pos机_POS机报错58终端无效的快速处理方法!
- 【毕业设计】STM32单片机的智能手环 - 蓝牙手环 物联网
- Android项目必备技术
热门文章
- 架构师技能6:深入MySQL原理-Waiting for table metadata lock引发系统崩溃
- BSP和MapReduce有什么区别?
- Nodejs 开发最佳实践
- 循环里发送请求java_servlets – 在Java Servlet中转发请求时的无限循环
- jmeter mysql查询结果提取_jmeter(11)-jdbc请求及请求后的响应结果如何提取
- Java IO篇 Java IO编程
- 【Linux】Linux命令详解
- 基于Python的蒙特卡罗方法估计Pi值的实现
- 简单辨析关系和区别:YUV、H.264、RTP、UDP、RTSP
- 六、MySQL 数据库练习题1(包含前5章练习题目及答案)