using UnityEditor; using UnityEngine; using System.IO; public class ScreenshotCapturer : MonoBehaviour { #if UNITY_EDITOR private void Update() { if (Input.GetKeyDown(KeyCode.F12)) { CaptureScreenshot(); } } private void CaptureScreenshot() { // 获取Assets上一级目录路径 string projectPath = Directory.GetParent(Application.dataPath).FullName; string screenshotDir = Path.Combine(projectPath, "Screenshots"); // 如果目录不存在则创建 if (!Directory.Exists(screenshotDir)) { Directory.CreateDirectory(screenshotDir); } // 生成基于时间的文件名 string timestamp = System.DateTime.Now.ToString("yyyy-MM-dd_HH-mm-ss"); string filename = $"Screenshot_{timestamp}.png"; string fullPath = Path.Combine(screenshotDir, filename); // 确保文件名唯一 int counter = 1; while (File.Exists(fullPath)) { filename = $"Screenshot_{timestamp}_{counter}.png"; fullPath = Path.Combine(screenshotDir, filename); counter++; } // 截取屏幕 ScreenCapture.CaptureScreenshot(fullPath); Debug.Log($"Screenshot saved to: {fullPath}"); // 刷新资源数据库(如果需要) AssetDatabase.Refresh(); } #endif }