Embed Screenshot to Unity Profiler protocol.
- 2019.4 or newer.
- the platforms that supports System.supportsAsyncGPUReadback (Mobile vulkan or metal....)
Support sync readback from 1.1.0 , however it's very slow....
via OpenUPM (requires openupm-cli).
openupm add com.utj.screenshot2profiler
1.Initialize.
Place the "ScreenShotProfiler.prefab" to the scene.
(You can customize the settings at Inspector.)
or callling this method to Initialize.
UTJ.SS2Profiler.ScreenShotToProfiler.Instance.Initialize();
or
UTJ.SS2Profiler.ScreenShotToProfiler.Instance.Initialize(w,h);
( w,h means recording texture size).
2.call "Tools -> ProfilerScreenshot" from Menu.
And then window will be displayed.
This is a sample that use RenderTexture instead of ScreenCapture.
RenderTexture captureRenderTexture;
ScreenShotToProfiler.Instance.captureBehaviour = (target) => {
CommandBuffer commandBuffer = new CommandBuffer();
commandBuffer.name = "ScreenCapture";
commandBuffer.Blit(captureRenderTexture, target);
Graphics.ExecuteCommandBuffer(commandBuffer);
};
By adding command line options at runtime, you can forcefully change the behavior. (Disabled when running Editor)
By adding the option "--profilerSS=enable", you can force the screenshot to be taken immediately after startup.
Screenshot can be forcibly disabled by adding the option "--profilerSS=disable"
You can now set the "width x height" of Texture, like "--profilerSS-resolution=256x192".
Texture can be compressed into Jpg by using "--profilerSS-format=JPG_BUFFERRGB565".
Option value list
- "NONE" → RGBA 32bit uncompressed setting
- "RGB_565" → RGB565(16bit) uncompressed setting
- "PNG" → RGBA 32Bit PNG compression setting
- "JPG_BUFFERRGBA" → RGBA 32bit JPEG compression setting
- "JPG" / "JPG_BUFFERRGB565" → RGB565 JPEG compression settings
Example: Sample.exe --profilerSS=enable --profilerSS-resolution=640x480 --profilerSS-format=jpg <br />
Example: adb shell am start -n com.utj.test[package name]/com.unity3d.player.UnityPlayerActivity[activity name] -e "unity --profilerSS=disable"<br />
version 1.5.0 Added command line option Display resolution version 1.4.0 Add ColorSpace convert. version 1.3.0 Add custom ProfilerModule for Unity 2021.2 or lator. version 1.2.1 fix release build error version 1.2.0 fix NullError when there is no data in Profiler. add Texture compress option. add RenderTexture capture instead of Screenshot. add "ScreenshotToUnityProfiler.prefab" version 1.1.0 add sync readback option for gles.