Інструмент для створення скріншотів для 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); } }