Скриншот с черным экраном Unity3D

Я делаю скриншот с помощью

Texture2D tex = new Texture2D(width,height);
Rect textureRect = new Rect(0,0,width,height);
tex.ReadPixels(textureRect,0,0);
tex.Apply();

Это работает нормально. Но когда я применяю эффект изображения к камере, такой как размытие или цветение, предоставленный в стандартных ресурсах Unity, снимок экрана становится черным. Я не понимаю почему. Может ли кто-нибудь помочь мне в этом?


person kashif789us    schedule 22.01.2016    source источник


Ответы (2)


Используйте Application.CaptureScreenshot, чтобы сделать снимок экрана.

Application.CaptureScreenshot("Screenshot.png");

Если вы хотите отобразить его в игре, я бы порекомендовал использовать RenderTexture, который, как мне кажется, доступен бесплатно начиная с Unity5.

person AntiHeadshot    schedule 22.01.2016
comment
Я хочу сделать скриншот определенной области экрана, которую я указываю методу ReadPixels. Application.CaptureScreenshot делает скриншот всей камеры. Что касается RenderTexture, я не могу его использовать. Я использую камеру только для фонового изображения, мне нужно разместить поверх него несколько элементов, которые размещаются с помощью UGUI, представленного в Unity 4.6. Эти элементы имеют холст режима рендеринга Screen Space Overlay. Я не хочу использовать отдельную камеру для этих предметов. - person kashif789us; 22.01.2016
comment
Я сделал это с помощью RenderTexture. Я назначил RenderTexture для targetTexture камеры и показал эту RenderTexture как RawImage на моем холсте наложения экрана. Затем сделал скриншот, и теперь он работает :) - person kashif789us; 23.01.2016

Вы должны попробовать вызвать его на OnPostRender() в любом компоненте.

Также вы можете запустить свой код захвата в: Camera.OnRenderImage(RenderTexture,RenderTexture)

Этот метод вызывается движком Unity3D после завершения рендеринга и появления на экране окончательного изображения.

Вам нужно создать для него компонент и прикрепить его к камере.

http://docs.unity3d.com/ScriptReference/Camera.OnRenderImage.html

person Jerry Switalski    schedule 22.01.2016
comment
Оба эти метода продолжают вызывать бесконечно. - person kashif789us; 23.01.2016