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. C++文件操作和模板

    1.数据层次 位 bit 字节 byte 域/记录 将所有记录顺序地写入一个文件---->顺序文件:一个有限字符构成的顺序字符流 C++标准库中:ifsteam,ofstream,fstream ...

  2. springboot 使用DruidDataSource 数据源

    一.添加依赖 <dependency> <groupId>com.alibaba</groupId> <artifactId>druid</art ...

  3. Spring Security学习笔记一

    一.使用Spring Security 1.在pom 文件中添加Spring Security的依赖. <dependency> <groupId>org.springfram ...

  4. XSS 渗透思路笔记

    了解XSS首先要了解HTML里面的元素:共有5种元素:空元素.原始文本元素. RCDATA元素.外来元素以及常规元素. 空元素area.base.br.col. command. embed.hr.i ...

  5. springboot中redis的缓存穿透问题

    什么是缓存穿透问题?? 我们使用redis是为了减少数据库的压力,让尽量多的请求去承压能力比较大的redis,而不是数据库.但是高并发条件下,可能会在redis还没有缓存的时候,大量的请求同时进入,导 ...

  6. Dubbo系列之 (二)Registry注册中心-注册(1)

    引导 dubbo的服务的注册与发现,需要通过第三方注册中心来协助完成,目前dubbo支持的注册中心包括 zookeeper,consul,etcd3,eureka,nacas,redis,sofa.这 ...

  7. java循环语句while与do-while

    一 while循环 while循环语句和选择结构if语句有些相似,都是根据条件判断来决定是否执行大括号内的执行语句. 区别在于,while语句会反复地进行条件判断,只要条件成立,{}内的执行语句就会执 ...

  8. C#LeetCode刷题之#566-重塑矩阵( Reshape the Matrix)

    问题 该文章的最新版本已迁移至个人博客[比特飞],单击链接 https://www.byteflying.com/archives/3720 访问. 在MATLAB中,有一个非常有用的函数 resha ...

  9. JavaScript npm/nrm 切换安装依赖的镜像源

    nrm: npm registry manager npm 镜像源管理工具 安装nrm npm install -g nrm 查看所有的镜像源 nrm ls # nrm ls npm -------- ...

  10. Vercel托管博客

    背景 本站已托管至Vercel,但作为一名前端小白,昨天帮朋友托管博客到Vercel的过程中到处碰壁,就想写一篇博客记录一下. 注册登录 点击Vercel官网{% btn 'https://verce ...