Как сделать скрин в unity
Editor Window screenshot
I want to capture a screenshot from a custom EditorWindow that I’m using as a LevelEditor for a game I’m working on, but i’m not sure on how to do it.
What I want is to capture the EditorWindow, NOT the game view or the scene view.
Can you help me? Thanks!
Edit: I want to take screenshots by code, when pressing a GUILayout.Button 🙂
1 Answer 1
At first I actually had it as you requested on a GUILayout.Button but decided to instead provide a more general solution here which is completely independent from the EditorWindow itself.
(You could still call EditorScreenshotExtension.Screenshot(); from the GUILayout.Button anyway.)
EditorScreenshotExtension.cs
Since it uses UnityEditor and UnityEditorInternal make sure to place it in a folder called Editor to exlude it from any builds.
After importing it to your project simply use CTRL + SHIFT + K to create a Screenshot of the currently active EditorWindow.
Screenshots are placed as PNG file in Assets/StreamingAssets with a timestamp in the name.
It will also add an entry to the top menu of the UniytEditor.
The current shortcut was just a random one which is not used so far. you can change it in [MenuItem(Screenshot/Take Screenshot %#k)] following the MenuItem docs
To create a hotkey you can use the following special characters:
For example to create a menu with hotkey shift-alt-g use «MyMenu/Do Something #&g». To create a menu with hotkey g and no key modifiers pressed use _ like «MyMenu/Do Something _g».
A hotkey text must be preceded with a space character («MyMenu/Do_g» won’t be interpreted as hotkey, while «MyMenu/Do _g» will).
Могу ли я сделать снимок в Unity с помощью камеры устройства?
Я совершенно не знаком с более сложным набором функций Unity3D и мне любопытно, есть ли у него возможность сделать снимок, а затем манипулировать им. В частности, мое желание состоит в том, чтобы пользователь сделал селфи, а затем проследил за их лицом, чтобы создать PNG, который затем будет отображаться на модели.
Я знаю, что отображение лица на модель просто, но мне интересно, нужно ли мне писать функциональность фото / резьбы в охватывающее приложение Chrome, или если все это можно сделать изнутри единства. Мне не нужен учебник о том, как это сделать, просто спросите, возможно ли это.
6 ответов
Да, это возможно. Вы захотите посмотреть на WebCamTexture функциональность.
вы создаете WebCamTexture и вызываете его Play () функция, которая запускает камеру. WebCamTexture, как и любая текстура, позволяет получать пиксели с помощью вызова GetPixels (). Это позволяет сделать снимок, когда вам нравится, и вы можете сохранить его в Texture2D. Звонок в EncodeToPNG () и последующая запись в файл должна привести вас туда.
обратите внимание, что приведенный ниже код является быстрой записью на основе документации. Я не проверял его. Возможно, вам придется выбрать правильное устройство, если доступно несколько устройств.
для тех, кто пытается получить камеру для рендеринга live feed, вот как мне удалось его снять. Во-первых, я отредактировал ответ Барта, чтобы текстура была назначена при обновлении, а не только при запуске:
Я надеюсь,что это поможет любому, кто ищет хороший способ захвата живой камеры в Unity.
Это возможно. Я настоятельно рекомендую вам посмотреть WebcamTexture единства с API. Он имеет некоторые полезные функции:
ответ Барта имеет требуемую модификацию. Я использовал его код, и фотография, которую я получал, была черной. Требуемая модификация заключается в том, что мы должны преобразуйте TakePhoto в coroutine и добавьте
вы также можете обратиться к
Да, вы можете. Я создал Android родная камера плагин, который может открыть камеру вашего Android устройства, захватить изображение, записать видео и сохранить его в нужном месте вашего устройства с помощью всего нескольких строк кода.
Editor Window screenshot
I want to capture a screenshot from a custom EditorWindow that I’m using as a LevelEditor for a game I’m working on, but i’m not sure on how to do it.
What I want is to capture the EditorWindow, NOT the game view or the scene view.
Can you help me? Thanks!
Edit: I want to take screenshots by code, when pressing a GUILayout.Button 🙂
1 Answer 1
At first I actually had it as you requested on a GUILayout.Button but decided to instead provide a more general solution here which is completely independent from the EditorWindow itself.
(You could still call EditorScreenshotExtension.Screenshot(); from the GUILayout.Button anyway.)
EditorScreenshotExtension.cs
Since it uses UnityEditor and UnityEditorInternal make sure to place it in a folder called Editor to exlude it from any builds.
After importing it to your project simply use CTRL + SHIFT + K to create a Screenshot of the currently active EditorWindow.
Screenshots are placed as PNG file in Assets/StreamingAssets with a timestamp in the name.
It will also add an entry to the top menu of the UniytEditor.
The current shortcut was just a random one which is not used so far. you can change it in [MenuItem(Screenshot/Take Screenshot %#k)] following the MenuItem docs
To create a hotkey you can use the following special characters:
For example to create a menu with hotkey shift-alt-g use «MyMenu/Do Something #&g». To create a menu with hotkey g and no key modifiers pressed use _ like «MyMenu/Do Something _g».
A hotkey text must be preceded with a space character («MyMenu/Do_g» won’t be interpreted as hotkey, while «MyMenu/Do _g» will).
Как сделать снимок экрана текущего представления моего настольного приложения в Unity с помощью C#?
У меня есть настольное приложение, которое я сделал на Unity, и я хочу сделать снимок экрана моего текущего вида в приложении, используя скрипт C#, прикрепленный к основной камере. Пожалуйста помочь.
Я просмотрел другие фрагменты кода, которые нашел на этой платформе, и, похоже, ничего не помогло.
2 ответа
Как я могу сделать снимок экрана текущего экрана с помощью Win32?
Я разрабатываю приложение iPad в iOS6, которое показывает проектирование домов с различными цветами и текстурами. Для этого я использую Cocos2d отличается. А для отображения используемых текстур и цветов на домашнем экране я использую UIKit просмотров. Теперь я хочу сделать скриншот этого.
Вы можете использовать метод CaptureScreenshot, как ответили выше, но это может сбить вас с толку, если вы новичок в unity. Он хранит ваше изображение захвата в пути к файлу, который вы должны передать методу CaptureScreenshot в качестве параметра, например
этот код показывает, что если вы нажмете клавишу ‘c’ на клавиатуре, то будет захвачено то, что основная камера рендерит в данный момент, и сохранено в этом пути к файлу
Похожие вопросы:
Есть ли какой-нибудь способ сделать снимок экрана тестового приложения и сохранить этот снимок экрана в определенном месте с помощью скрипта в testcomplete.
Так что же делать, если я хочу сделать приложение, в котором вы можете сделать снимок экрана внутри самого приложения? Как бы я это сделал? Так, например, пользователи нажимают кнопку UIButton, и.
Я пытаюсь разработать беспроводной телефонный проектор, в котором я буду показывать экран телефона на проекторе с помощью подключенного проектора PC. Я немного запутался в том, как сделать снимок.
Как я могу сделать снимок экрана текущего экрана с помощью Win32?
Я разрабатываю приложение iPad в iOS6, которое показывает проектирование домов с различными цветами и текстурами. Для этого я использую Cocos2d отличается. А для отображения используемых текстур и.
Я создаю инструмент автоматизации, который поможет сделать снимок экрана веб-страницы, я использую Selenium Web driver ( Java), в настоящее время я могу сделать снимок экрана всей веб-страницы со.
Поэтому в этой игре с лабиринтом, которую я делаю, я покажу лабиринт игроку в течение 30 секунд. Чего я не хочу, так это того, что игрок делает скриншот лабиринта. Я хочу сделать что-то вроде.
Я пытаюсь наблюдать, делается ли скриншот во время использования моего приложения на Iphone. Если снимок экрана сделан во время использования моего приложения, я бы хотел, чтобы этот снимок экрана.
Application.CaptureScreenshot
Success!
Thank you for helping us improve the quality of Unity Documentation. Although we cannot accept all submissions, we do read each suggested change from our users and will make updates where applicable.
Submission failed
For some reason your suggested change could not be submitted. Please try again in a few minutes. And thank you for taking the time to help us improve the quality of Unity Documentation.
Declaration
Declaration
Parameters
filename | Pathname to save the screenshot file to. |
superSize | Factor by which to increase resolution. |
Description
Captures a screenshot at path filename as a PNG file.
Use ScreenCapture.CaptureScreenshot instead of obsolete Application.CaptureScreenshot.
When superSize parameter is larger than 1, a larger resolution screenshot will be produced. For example, passing 4 will make the screenshot be 4×4 larger than it would normally be. This is useful to produce screenshots for printing.
On mobile platforms the filename is appended to the persistent data path. See Application.persistentDataPath for more information. On Android this function returns immediately. The resulting screenshot is available later.
Note: Screenshots can be made from the Editor as described above. In this case only the Game view can be captured. If the Scene view is selected any screenshot will not be written. Switching to the Game view will cause the most recent captured image to be written. See EditorWindow for how an editor-based capture window can be created. If the Game view is current and the Editor button is clicked multiple times the first generated screenshot will be written. Application.CaptureScreenshot is a Game specific function.
Is something described here not working as you expect it to? It might be a Known Issue. Please check with the Issue Tracker at issuetracker.unity3d.com.
Copyright ©2021 Unity Technologies. Publication Date: 2021-12-17.