unity3d中怎么用按钮实现当前摄影机拍摄的画面并保存
时间: 2023-04-01 12:02:06 浏览: 53
您可以使用RenderTexture来实现这个功能。首先,创建一个RenderTexture对象,然后将当前摄像机的目标纹理设置为RenderTexture。接下来,创建一个新的纹理,将RenderTexture的内容复制到新的纹理中。最后,将新纹理保存为PNG或JPG格式的图像文件即可。
以下是示例代码:
// 创建RenderTexture对象
RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 24);
// 将当前摄像机的目标纹理设置为RenderTexture
Camera.main.targetTexture = rt;
// 创建新纹理
Texture2D texture = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false);
// 复制RenderTexture的内容到新纹理中
RenderTexture.active = rt;
texture.ReadPixels(new Rect(, , Screen.width, Screen.height), , );
texture.Apply();
// 将新纹理保存为PNG或JPG格式的图像文件
byte[] bytes = texture.EncodeToPNG(); // 或者 EncodeToJPG()
File.WriteAllBytes(Application.dataPath + "/screenshot.png", bytes);
// 恢复摄像机的目标纹理
Camera.main.targetTexture = null;
// 释放RenderTexture对象
RenderTexture.ReleaseTemporary(rt);