当前位置: 首页 > article >正文

Unity3D 截图

使用 Unity3D 自带的截图接口,制作截图工具。

截图

有时候我们想对 Unity 的窗口进行截图,如果直接使用一些截图工具,很难截取到一张完整分辨率的图片(例如,我们想要截取一张 1920 * 1080 的图片)。

其实 Unity 有提供截图的接口,我们只需要写一个脚本,把截图接口做成简单的菜单栏工具即可。

创建工具脚本

创建脚本 ScreenshotTool.cs,写一个 CaptureFull 方法,调用 Unity 提供的 ScreenCapture.CaptureScreenshot 方法即可。

截图时,为了方便找到,保存的路径是 Assets 文件夹(Application.dataPath),截图的名称是 Screenshot 拼接了当前的时间(如果名称一样,每次截图都会覆盖原来的图片)。

我们在 CaptureFull 方法上面添加一个 MenuItem,就可以在菜单栏找到它,也可以使用 Alt + Q 快捷键(即路径末尾的 &Q)。

using System;
using UnityEngine;
using UnityEditor;

public static class ScreenshotTool
{
    [MenuItem("截图/截取全屏 &Q")]
    public static void CaptureFull()
    {
        string time = DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss");
        string path = $"{Application.dataPath}/Screenshot_{time}.png";
        ScreenCapture.CaptureScreenshot(path);
        Debug.Log("Screenshot saved at: " + path);
    }
}

截图效果

如图,菜单栏出现按钮,并且有快捷键的描述。

运行游戏时,点击菜单栏按钮,或者按下 Alt + Q,控制台会打印截图的保存路径。

当 Unity 资源文件夹刷新时,也会看到 Assets 文件夹下多出来一张图片,尺寸是 1920 * 1080(当前 Game 窗口的分辨率)。

截图效果


http://www.kler.cn/a/409262.html

相关文章:

  • MyBatis基本使用
  • 从零开始学习数据库 day0(基础)
  • Java语言编程,通过阿里云mongo数据库监控实现数据库的连接池优化
  • 【LLM】一文学会SPPO
  • VUE 的前置知识
  • Windows系统编程 - 进程遍历
  • linux从0到1——shell编程9
  • Python 获取微博用户信息及作品(完整版)
  • redis的map底层数据结构 分别什么时候使用哈希表(Hash Table)和压缩列表(ZipList)
  • C语言进阶5:动态内存管理
  • Python Selenium:Web自动化测试与爬虫开发
  • C语言指针作业
  • 区块链应用到银行的优势
  • 如何调试 chrome 崩溃日志(MAC)
  • [译]Elasticsearch Sequence ID实现思路及用途
  • 快速了解RDD的创建与处理过程
  • Jedis存储一个-以String的形式的对象到Redis
  • 【Go】-go中的锁机制
  • 【MATLAB源码-第218期】基于matlab的北方苍鹰优化算法(NGO)无人机三维路径规划,输出做短路径图和适应度曲线.
  • MySQL中的ROW_NUMBER窗口函数简单了解下
  • 【网络安全设备系列】3、IPS(入侵防御系统)
  • OpenCV4.9 dnn人脸识别
  • Linux的开发工具(三)
  • 设计模式之 命令模式
  • C++不完整类型(Incomplete Type)的检测与避免
  • Spring Boot 3.x + OAuth 2.0:构建认证授权服务与资源服务器