Показать сообщение отдельно
Старый 17.01.2017, 16:15   #8
Nex
Гигант индустрии
 
Аватар для Nex
 
Регистрация: 13.09.2008
Сообщений: 2,893
Написано 1,185 полезных сообщений
(для 3,298 пользователей)
Ответ: Как рендерить в Editor скриптах

Сообщение от Evgen Посмотреть сообщение
Откуда инфа на счет скорости?
Делал запись видео из юнити в файл. При рендере в текстуру в цикле можно играть в игру, а при использовании скриншотов в игру уже проблемно поиграть.


Создаешь новый слой и назначаешь тем объектам, которые нужно рендерить. Слой это справа от "Tag".

Создаешь новую камеру для рендера. Ставишь clearFlags: SolidColor; Culling Mask: имя слоя, который ты создал и назначил объектам; Projection: подойдет вроде любой, но лучше поставить ортографический; Size: такой что бы все объекты попали в камеру, но при этом что бы меньше было пустоты по бокам (короч 1.2 подойдет). Еще у камеры можно в Background задать черный или яркозеленый цвет что бы потом обрезать фон (как сделать прозрачный фон хз).

Создаешь в редакторе (можно и в коде, но зачем?) RenderTexture и назначаешь её в TargerTexture у камеры, которая будет рендерить.
Вешаешь скрипт на рендер камеру, который ниже (можно и свой через элементы меню и прочее, но это уже сам переделывай).

?? Вроде всё ??
Запускаешь игру@смотришь картинку в папке.

using UnityEngine;

public class qwer : MonoBehaviour {
    void Start() {
        int sqr = 256;

        Camera camera = GetComponent<Camera>();
        RenderTexture renderTexture = camera.targetTexture;
        camera.Render();

        RenderTexture.active = renderTexture;

        Texture2D tex = new Texture2D(sqr, sqr, TextureFormat.RGB24, false);
        tex.ReadPixels(new Rect(0, 0, sqr, sqr), 0, 0);
        tex.Apply();

        byte[] bytes = tex.EncodeToPNG();
        System.IO.File.WriteAllBytes(Application.dataPath + "/" + "icon.png", bytes);
    }
}
(Offline)
 
Ответить с цитированием