using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;
public class CCOpyText : MonoBehaviour {
public Text txt;
public MeshRenderer r;
public Camera txtCamera;
public int picSize = 256;
void Start () {
}
Texture2D copytext()
{
RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 24);
txtCamera.targetTexture = rt;
Texture2D screenShot = new Texture2D(picSize, picSize, TextureFormat.RGB24, false);
txtCamera.Render();
RenderTexture.active = rt;
screenShot.ReadPixels(new Rect((int)(Screen.width / 2 - picSize / 2), (int)(Screen.height / 2 - picSize / 2), picSize, picSize), 0, 0);
screenShot.Apply();
txtCamera.targetTexture = null;
RenderTexture.active = null;
Destroy(rt);
byte[] bytes = screenShot.EncodeToPNG();
string filename = "1.png";
System.IO.File.WriteAllBytes(filename, bytes);
return screenShot;
}
void OnGUI()
{
if (GUI.Button(new Rect(0, 10, 100, 30), "click"))
{
Texture2D t = copytext();
r.material.mainTexture = (Texture)t;
}
}
}
Unity截图
最新推荐文章于 2024-01-15 15:30:00 发布
本文介绍了一个Unity项目的截图功能实现,通过自定义脚本CCOpyText实现了从Unity场景中选取特定区域进行截图,并将截图应用于MeshRenderer材质上。该脚本使用了RenderTexture和Texture2D来捕获屏幕内容并保存为图片。
3759

被折叠的 条评论
为什么被折叠?



