Unity实现截屏和根据相机画面截图
Unity是一款跨平台的游戏引擎,它可以实现截屏和根据相机画面截图,以下是Unity实现截屏和根据相机画面截图的方法:
截屏
1、在Unity的编辑器中,按下“Ctrl+S”键,可以将当前场景的截图保存到桌面,文件名为“Screenshot.png”;
2、在Unity的编辑器中,点击“Game”菜单,选择“Take Screenshot”,可以将当前场景的截图保存到桌面,文件名为“Screenshot.png”;
3、在Unity的编辑器中,点击“Window”菜单,选择“Screenshot”,可以将当前场景的截图保存到桌面,文件名为“Screenshot.png”。
根据相机画面截图
1、在Unity的编辑器中,点击“Game”菜单,选择“Take Screenshot”,可以将指定相机的画面截图保存到桌面,文件名为“Screenshot.png”;
2、在Unity的脚本中,可以使用如下代码实现根据指定相机的画面截图:
//定义一个相机 public Camera camera; //定义一个按钮,点击按钮可以截图 public Button button; //定义一个文件名 public string fileName = "Screenshot.png"; //定义一个路径 public string path = "C:/Users/Desktop"; //当按钮被点击时,截图 button.onClick.AddListener(TakeScreenshot); //截图的方法 void TakeScreenshot() { //创建一个空的RenderTexture,用于保存截图 RenderTexture rt = new RenderTexture(Screen.width, Screen.height, 0); //将指定相机的画面渲染到RenderTexture中 camera.targetTexture = rt; camera.Render(); //将RenderTexture转换为Texture2D Texture2D screenShot = new Texture2D(Screen.width, Screen.height, TextureFormat.RGB24, false); //从RenderTexture中读取像素信息 RenderTexture.active = rt; screenShot.ReadPixels(new Rect(0, 0, Screen.width, Screen.height), 0, 0); //释放相机的渲染目标 camera.targetTexture = null; //释放RenderTexture RenderTexture.active = null; Destroy(rt); //将读取到的像素信息转换为png格式图片 byte[] bytes = screenShot.EncodeToPNG(); //保存图片 File.WriteAllBytes(Path.Combine(path, fileName), bytes); }
以上就是Unity实现截屏和根据相机画面截图的方法,希望对大家有所帮助。