1. function OnGUI(){
  2. if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen")){
  3. Application.CaptureScreenshot("Screenshot.png");
  4. }
  5. }

这张Screenshot.png图片被存在了当前工程的子目录下了。之前在android上面一直不知道路径,后来把所有路径试玩了总算ok了,呵呵~~~在android上截取的图片存在Application.persistentDataPath上面,在pc上存在Application.dataPath。

  1. private var www:WWW;
  2. private var image:Texture;
  3. private var path:String;
  4. function Awake(){
  5. Application.CaptureScreenshot("Screenshot.png");
  6. }
  7. function Start () {
  8. if(Application.platform==RuntimePlatform.Android){
  9. path=Application.persistentDataPath;
  10. }else if(Application.platform==RuntimePlatform.WindowsPlayer){
  11. path=Application.dataPath;
  12. }else if(Application.platform==RuntimePlatform.WindowsEditor){
  13. path=Application.dataPath;
  14. path=path.Replace("/Assets",null);
  15. }
  16. www=new WWW("file://"+path+"/Screenshot.png");
  17. yield www;
  18. image=www.texture;
  19. }
  20. function OnGUI(){
  21. GUI.Label(Rect(0,0,400,50),"1:"+Application.persistentDataPath);
  22. GUI.Label(Rect(0,50,400,50),"2:"+Application.dataPath);
  23. GUI.Label(Rect(0,100,400,50),"3:"+Application.temporaryCachePath);
  24. GUI.Label(Rect(0,150,400,50),"4:"+Application.absoluteURL);
  25. GUI.Label(Rect(0,200,400,50),"5:"+Application.streamingAssetsPath);
  26. GUI.DrawTexture(Rect(0,250,300,200),image);
  27. }

在编辑器上各种路径:

在pc上各种路径:

在web上各种路径:

在android上面各种路径:

第二种方法:

  1. import System.IO;
  2. var www:WWW;
  3. var image:Texture;
  4. function Start () {
  5. }
  6. function OnGUI() {
  7. if(GUI.Button(Rect(0,0,100,100),"png")){
  8. writeFile();
  9. }
  10. if(Input.GetKey(KeyCode.Escape)){
  11. Application.Quit();
  12. }
  13. www=new WWW("file://"+path);
  14. image=www.texture;
  15. GUI.Button(Rect(Screen.width-100,0,100,100),image);
  16. }
  17. private var fileName : String = "jietu2";
  18. private var path:String;
  19. function writeFile()
  20. {
  21. path=Application.dataPath;
  22. var tex : Texture2D= new Texture2D(Screen.width,Screen.height,TextureFormat.RGB24, false);
  23. tex.ReadPixels(Rect(0,0,Screen.width,Screen.height),0,0);
  24. tex.Apply();
  25. var bytes : byte[]=tex.EncodeToPNG();
  26. Destroy(tex);
  27. var thisName : String = fileName+".png";
  28. if(Application.platform==RuntimePlatform.Android){
  29. path="/mnt/sdcard/"+thisName;
  30. }else{
  31. path=path+thisName;
  32. }
  33. var cache = new FileStream(path, FileMode.Create);
  34. cache.Write(bytes,0,bytes.Length);
  35. cache.Close();
  36. }

后来我又试了一下这个方法,结果又不行了,运行到var cache = new FileStream(path, FileMode.Create);就不运行了。

unity3d屏幕截图功能的更多相关文章

  1. node-webkit 屏幕截图功能

    做 IM 屏幕截图是少不了的,之前 windows 版本是调用的 qq 输入法的截图功能,这个版本又再次尝试自己实现发现是可以的,getusermedia 的权限很高,代码如下 <!DOCTYP ...

  2. unity3d 计时功能舒爽解决方案

    上次也写了一篇计时功能的博客 今天这篇文章和上次的文章实现思路不一样,结果一样 上篇文章地址:http://www.cnblogs.com/shenggege/p/4251123.html 思路决定一 ...

  3. Unity3D 固定功能函数

    Unity 3D 测试固定功能函数执行顺序 1. 在GameObject和脚本激活状态下,测试: 2. 在GameObject激活状态下,测试: 3. 在2种情况都不激活的状态下测试:脚本无输出: 函 ...

  4. unity3d 各功能的运行秩序,打回来,订购,的次数

    Update 当MonoBehaviour启用时,其Update在每一帧被调用. 仅调用一次(每帧) LateUpdate 当Behaviour启用时,  每帧调用一次: FixedUpdate 当M ...

  5. Unity3d 屏幕截图。并保存。iOS

    - ( void ) imageSaved: ( UIImage *) image didFinishSavingWithError:( NSError *)error contextInfo: ( ...

  6. C#屏幕截图

    今天通过C#来实现一个简单的屏幕截图功能.实现思路,获取鼠标按下去的位置和鼠标左键释放的位置,计算这个区域的宽度和高度.然后通过 Graphics.CopyFromScreen 方法便可以获取到屏幕截 ...

  7. JAVA B/S系统实现客户端屏幕截图,Java版的QQ截图

    简介:本方法首先需要抓到屏幕的整个图象,将图象显示在一个JFrame中,再将JFrame全屏显示,这样就模拟出了一个桌面,Java也就可以获得鼠标的作用区域从而实现桌面中的小范围截屏.Java实现QQ ...

  8. pyautogui 文档(五):截图及定位功能

    截图函数 PyAutoGUI可以截取屏幕截图,将其保存到文件中,并在屏幕中查找图像.如果您有一个小图像,例如需要单击并希望在屏幕上找到它的按钮,这将非常有用.这些功能由PyScreeze模块提供,该模 ...

  9. 《VR入门系列教程》之14---面向大众的Unity3D

    大众化的游戏引擎--Unity3D     并不是所有VR应用都是游戏,然而现在做VR开发的几乎都会用专业游戏引擎来做,因为游戏引擎既满足了一个引擎的要求又可以方便地制作出高品质的VR应用.一个游戏引 ...

随机推荐

  1. 字节真题 ZJ26-异或:使用字典树减少计算次数

    原题链接 题目描述: 个人分析:从输入数据看,要处理的元素个数(n)没有到达 10^9 或 10^8 级,或许可以使用暴力?但是稍微计算一下,有 10^5 * (10^5 - 1) / 2 = 10^ ...

  2. K近邻算法(一)

    K 近邻算法思想: 寻找该点周围最近的K个点.根据这K 个点的类别来判断该点的类别: 核心: 数据归一化.(在必要的时候必须进行数据归一化处理,防止某一特征在计算数据时占比较重) 计算欧拉距离 . 使 ...

  3. rabbitMQ结合spring-boot使用(1)

    从这一节开始我们进入rabbitMQ的实战环节,项目环境是spring-boot 加maven.首先让我们创建一个spring-boot项目,然后引入web依赖和 rabbitMQ的依赖 <de ...

  4. mysql主主半同步

    1.半同步概述 先了解下mysql的几种复制 异步复制MySQL复制默认是异步复制,Master将事件写入binlog,提交事务,自身并不知道slave是否接收是否处理:缺点:不能保证所有事务都被所有 ...

  5. 朴素贝叶斯分类器基本代码 && n折交叉优化 2

    这个代码基于上一个代码 不同的是:读取了txt文件,改变了min_ft与max_ft的参数 import re import pandas as pd import warnings import n ...

  6. 【Python笔记】2020年7月30日练习【python用input函数输入一个列表】

    练习课题链接:廖雪峰-Python教程-高级特性-迭代 学习记录: 1.Python当中类似于 三目运算符 的应用 2.Python用input函数输入一个列表 代码实例:对用户输入的一组数字转化成l ...

  7. pyinstaller 转 exe 的一些坑,以及解决

    2020年7月30日 打包了一个程序,各种报错,记录一下1.有时候,这个pyinstaller 打包程序吧,会出现闪退一下,一般原因是因为某个包没有加载进来,或者是包所在的路劲下面有中文,这样打包成功 ...

  8. oracle正则表达式语法介绍及实现手机号码匹配方法

    Oracle10g提供了在查询中使用正则表达的功能,它是通过各种支持正则表达式的函数在where子句中实现的.本文将简单的介绍oracle正则表达式常用语法,并通过一个手机特号匹配的例子演示正则表达式 ...

  9. 漏洞重温之XSS(中)

    漏洞重温之XSS(中) XSS挑战之旅 level8-level13 level8 第八关开局,发现button从搜索变成了友情链接,发现该页面情况跟前面不同,先右键查看代码,再进行尝试. 上测试代码 ...

  10. 火题小战 B. barbeque

    火题小战 B. barbeque 题目描述 \(Robbery\) 是一个大吃货(雾) 某个神奇的串由牛肉和青椒构成,于是\(Robbery\)购买了\(n\)个餐包来自己做这个串,每个餐包中有一些牛 ...