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. github 错误

    Push failed: Unable to access 'https://github.com/infoo/Neo4j.git/': The requested URL returned erro ...

  2. Android SQLite轻量级数据库的删除和查找操作

    今天主要是补充昨天的内容,本打算合成一章的,但是毕竟一天一天的内容写习惯了. 就这样继续昨天的,昨天只讲了创建以及增加和查询, 其实用法都差不多,今天学长也是在原有的基础上写的,还顺便融合了Share ...

  3. CI4框架应用三 - app目录

    我们再来看一下项目的app目录结构,这个目录就是我们开发的主目录,项目的配置,代码的编写都在这个目录中. Administrator@PC- MINGW64 /c/wamp64/www/ci4/app ...

  4. h5css产品模块设计

      <!DOCTYPE html> <html lang="en"> <head>     <meta charset="UTF ...

  5. 用 Python 写个消消乐小游戏

    提到开心消消乐这款小游戏,相信大家都不陌生,其曾在 2015 年获得过玩家最喜爱的移动单机游戏奖,受欢迎程度可见一斑,本文我们使用 Python 来做个简单的消消乐小游戏. 很多人学习python,不 ...

  6. 10、Java 数组的定义和使用

    1.数组的定义 首先举一个小例自:如果你现在需要定义100个int类型的变量,那么按照前俩节的做法为: int a = 1, b=2 , c=3.......; 可以发现我们的代码特别的冗余,而且不美 ...

  7. Nginx介绍,安装,配置

    引言 为什么要学习Nginx 问题一: 客户端到底要将请求发送给哪台服务器? 问题二: 如果所有客户端的请求都发送给了服务器1,那另一台岂不是废了 问题三: 客户端发送的请求可能是申请动态资源的,也可 ...

  8. Qt之先用了再说系列-定时器的用法

    Qt 定时器是一个比好用的东西,在此就地简单记录一下使用的方式: 1.首先包含头文件 #include <QTimer> 2.具体用法有几种,我就写其中2种吧 1>执行一次 这种方式 ...

  9. C#LeetCode刷题之#136-只出现一次的数字(Single Number)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/4046 访问. 给定一个非空整数数组,除了某个元素只出现一次以外, ...

  10. 解读闭包,这次从ECMAScript词法环境,执行上下文说起

    对于x年经验的前端仔来说,项目也做了好些个了,各个场景也接触过一些.但是假设真的要跟面试官敞开来撕原理,还是有点慌的.看到很多大神都在手撕各种框架原理还是有点羡慕他们的技术实力,羡慕不如行动,先踏踏实 ...