1.下面是实现代码

using System.Collections;
using System.Collections.Generic;
using UnityEditor;
using UnityEngine;

public class SaveJPG : MonoBehaviour
{
    public GameObject[] gameObjects;
    //string fileName = Application.streamingAssetsPath + "/UI/photo.jpg";
    public Camera camera;
    public Transform fuwutiParent;
    public int jsq = 0;
    public bool zx = false;
    GameObject obj = null;
    
    private void Start()
    {
        //自动保存图片
        //StartCoroutine(CloneTuPian());
    }
    private void Update()
    {
        #region 半自动保存图片手动对位置
        if (Input.GetKeyDown (KeyCode.Space))
        {
            for (int i = 0; i < fuwutiParent.childCount; i++)
            {
                fuwutiParent.GetChild(jsq).gameObject.SetActive(true);
            }           
           
        }
        if (Input.GetKeyDown (KeyCode.Alpha1))
        {
            string str_ = fuwutiParent.GetChild(jsq).name.Split('(')[0].ToString();
            CaptureScreenByRT(str_);
            fuwutiParent.GetChild(jsq).gameObject.SetActive(false);
            jsq++;
            Debug.Log(jsq);
        }
        #endregion
    }

    IEnumerator CloneTuPian()
    {
        while (jsq<gameObjects .Length)
        {
            GameObject obj = Instantiate(gameObjects[jsq]);
            string str_ = obj.transform.name.Split('(')[0].ToString ();
            CaptureScreenByRT(str_);
            Destroy(obj);
            yield return new WaitForSeconds(1f);         
            jsq++;
        }
        Debug.Log("生成结束");
    }
    public void CaptureScreenByRT(string fileName)
    {
        Rect rect = new Rect(0, 0, 600, 600);
        // 创建一个RenderTexture对象  
        RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, 0);
        // 临时设置相关相机的targetTexture为rt, 并手动渲染相关相机  
        camera.targetTexture = rt;
        camera.Render();
        // 激活这个rt, 并从中中读取像素。  
        RenderTexture.active = rt;
        Texture2D screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false);
        // 注:这个时候,它是从RenderTexture.active中读取像素 
        screenShot.ReadPixels(rect, 0, 0);
        screenShot.Apply();
        // 重置相关参数,以使用camera继续在屏幕上显示  
        camera.targetTexture = null;
        RenderTexture.active = null;
        GameObject.Destroy(rt);
        // 最后将这些纹理数据,成一个png图片文件  
        byte[] bytes = screenShot.EncodeToPNG();
        string path = Application.streamingAssetsPath + "/UI/"+ fileName + ".jpg";
        System.IO.File.WriteAllBytes(path, bytes);
        AssetDatabase.Refresh();
    }


}

 

直接使用即可

 

原文地址:http://www.cnblogs.com/qq2351194611/p/16912109.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性