写点什么

玩游戏想记录一下自己超神的瞬间?那么就来看一下如何使用 Unity 截图吧

  • 2022 年 7 月 25 日
  • 本文字数:851 字

    阅读完需:约 3 分钟

玩游戏想记录一下自己超神的瞬间?那么就来看一下如何使用Unity截图吧

推荐阅读


大家好,我是佛系工程师<font color="red">☆恬静的小魔龙☆</font>,不定时更新 Unity 开发技巧,觉得有用记得一键三连哦。

一、前言

来看一下怎么截图的吧

二、效果


三、代码

using UnityEngine;
public class Screenshot : MonoBehaviour{ //截图相机 Camera capCamera; //保存图片 Texture2D screenShot;
void Start() { capCamera = GameObject.Find("Main Camera").GetComponent<Camera>(); }
void OnGUI() { if (GUILayout.Button("Show")) { CaptureCamera(); } }
void CaptureCamera() { Rect rect = new Rect(Screen.width * 0f, Screen.height * 0f, Screen.width * 1f, Screen.height * 1f); // 创建一个RenderTexture对象 RenderTexture rt = new RenderTexture((int)rect.width, (int)rect.height, 0); // 临时设置相关相机的targetTexture为rt, 并手动渲染相关相机 capCamera.targetTexture = rt; capCamera.Render(); // 激活这个rt, 并从中中读取像素。 RenderTexture.active = rt; screenShot = new Texture2D((int)rect.width, (int)rect.height, TextureFormat.RGB24, false); //从RenderTexture.active中读取像素 screenShot.ReadPixels(rect, 0, 0); screenShot.Apply();
// 重置相关参数,以使用camera继续在屏幕上显示 capCamera.targetTexture = null; //避免重复添加的错误 RenderTexture.active = null;
//销毁这个对象 Destroy(rt);
//保存图片 byte[] bytes = screenShot.EncodeToPNG(); string filename = Application.streamingAssetsPath + "/2.png"; System.IO.File.WriteAllBytes(filename, bytes); }}
复制代码


发布于: 1 小时前阅读数: 8
用户头像

Unity3D软件工程师 2019.10.31 加入

Unity3D软件工程师,专注于虚拟仿真开发和VR开发。

评论

发布
暂无评论
玩游戏想记录一下自己超神的瞬间?那么就来看一下如何使用Unity截图吧_游戏开发_恬静的小魔龙_InfoQ写作社区