• unity3d 截屏


        void OnGUI(){
            
            if(GUI.Button(new Rect(10,70,50,50),"ScreenShot")){
                        StartCoroutine(ScreenShot());  //协程调用
            }        
        }
        
        IEnumerator ScreenShot(){
                int width = Screen.width;
                int height = Screen.height;
                yield return new WaitForEndOfFrame(); //去掉协程试试看会发生什么。
                Texture2D tex = new Texture2D(width,height,TextureFormat.RGB24,false);//设置Texture2D
                tex.ReadPixels(new Rect(0,0,width,height),0,0);//获取Pixels           
                tex.Apply();//应用改变
                byte[] bytes = tex.EncodeToPNG();//转换为byte[]
           Destroy(tex); Stream flstr
    = new FileStream(@"d:\1.png", FileMode.Create);//文件操作 BinaryWriter sw = new BinaryWriter(flstr, Encoding.Unicode); sw.Write(bytes); sw.Close(); flstr.Close(); }

    另一种方法:

    using UnityEngine; 
    
    using System.Collections;
     
    public class example : MonoBehaviour 
    
    { 
    
      void OnMouseDown() 
    
      { 
    
        Application.CaptureScreenshot("Screenshot.png"); 
    
      } 
    
    }
     
     
     
    
    function OnGUI(){
        if(GUI.Button(Rect(Screen.width*0.5-50,Screen.height*0.5-50,100,100),"screen")){
            Application.CaptureScreenshot("Screenshot.png");
        }
     }
     
     


    这张Screenshot.png图片被存在了当前工程的子目录下了。

  • 相关阅读:
    使用gulp搭建一个传统的多页面前端项目的开发环境
    抓包工具使用
    selectors 模块
    I/O模型
    协程
    进程池
    进程的同步
    进程间通讯的三种方式
    多进程调用
    生产者消费者模型
  • 原文地址:https://www.cnblogs.com/88999660/p/2869747.html
Copyright © 2020-2023  润新知