Для историй ВКонтакте нам нужно было сгенерировать картинку в Unity, на которой будет написана текущая глубина. Я решил эту задачу с помощью префаба, в котором подготовил шаблон для истории, и скрипта, который устанавливает число в текстовое поле и создает изображение из префаба.
Полное описание не влезет в пост, поэтому я подготовил unitypackage с примером, а здесь поясню основные моменты:
1) Для создания изображения используется
RenderTexture. Внутри префаба находится камера, которая смотрит на содержимое префаба, и записывает то, что видит, в RenderTexture.2) Размер
RenderTexture должен быть равен размеру требуемого изображения. Наверняка можно создать RenderTexture динамически, но мне было проще создать его вручную в ассетах.3) У меня были проблемы, если я выставлял камере
targetTexture = renderTexture в префабе. Поэтому там пусто, и targetTexture задаётся с помощью кода.4) Изображение можно получить только в конце кадра. Поэтому код работает в корутине, после
yield return new WaitForEndOfFrame();5) Чтобы префаба не было видно в игре, стоит его вынести в отдельный слой, который не видит основная камера.
#ui #самый_крутяк