Інструмент для створення скріншотів для Unity. Відеоурок. Частина 1

У цьому підручнику йдеться про створення інструменту автоматичного захоплення знімків екрана для Unity. Ви знаєте, що завжди боляче робити знімки екрана гри для кількох пристроїв і платформ, коли у вас багато роздільних здатностей. Отже, цей інструмент полегшує життя.

:ad:

Є кілька способів, як реалізувати захоплення екрана. Спочатку ви можете використовувати R2T, приєднати його і зробити скріншот прямо з ігрової камери, але цей підхід має багато недоліків і складний для реалізації. Якщо ви хочете спробувати, ви можете переглянути плагін уніфікованого магазину під назвою Instant Screenshot.

У цьому посібнику я покажу вам, як я вважаю, кращий і найпростіший спосіб робити знімки екрана. Ми просто вручну змінимо розмір вікна GameView, а потім використаємо функцію CaptureScreenshot класу Application.

У наступному посібнику я покажу, як реалізувати кілька скріншотів і підтримку скріншотів високої роздільної здатності.

Сценарій ScreenshotTaker із відео

використання UnityEngine;
використання System.Collections;
за допомогою UnityEditor;

відкритий клас ScreenshotTaker {     [Пункт меню(“Інструменти/Зробити знімки екрана”)]     public static void MenuItem_TakeScreenshots()     {         // отримати вигляд гри         System.Type gameViewType = System.Type.GetType(“UnityEditor.GameView, UnityEditor”);         var gameView = EditorWindow.GetWindow(gameViewType);         якщо (gameView == null)             EditorApplication.ExecuteMenuItem(“Waindow/Game”);

        gameView = EditorWindow.GetWindow(gameViewType);         якщо (gameView == null)         {             Debug.LogError(“Перегляд гри не знайдено!”);             повернення;         }

        //змінити розмір перегляду гри         int width = 1024;         int height = 768;         int gameViewBarHeight = 17;

        var rect = gameView.position;         rect.x = 0;         rect.y = 0;         rect.width = ширина;         rect.height = висота + gameViewBarHeight;         gameView.position = rect;

        // зробити знімок екрана         string fileName = “screenshot_” + System.DateTime.Now.ToString(“yyyy-MM-dd-hh-mm-ss”) + “.png”;         string folderPath = Application.persistentDataPath;         fileName = System.IO.Path.Combine(folderPath, fileName);         Application.CaptureScreenshot(fileName);         Application.OpenURL(folderPath);     } }