Captura de tela (screenshot) com Unity 3D

Captura de tela (screenshot) com Unity 3D

Veja como é muito simples capturar a tela do seu game dentro do Unity 3D 5.

Publicado em

Todos os nossos cursos em promoção

Quem nunca jogou um game e queria ter capturado uma imagem para registrar o momento, seja ele algo engraçado ou uma linda paisagem? Acho que a maioria.

Pois bem, a Unity 5 nos permite facilmente fazer isto com apenas uma linha de código, mas é claro que devemos criar condições para isso, mas mesmo assim o código ainda fica pequeno.

Se deseja distribuir seu jogo dentro da Steam, não é necessário implementar este recurso, pois pressionando a tecla F12, a ferramenta já captura a tela sem nenhum esforço.

Captura de Tela Steam, jogo Far Cry 3
Captura de Tela Steam, jogo Far Cry 3

Figura 1: Captura do jogo Far Cry 3

Veja o código abaixo, este código permite fazer a captura da tela e foi utilizado na videoaula disponível logo abaixo.

Código 01:

using UnityEngine;
using System.Collections;
using System.IO;
using System;

public class Screenshot : MonoBehaviour
{

    private string _caminho;
    void Start()
    {
        _caminho = Application.dataPath + "/capturas/";

        if (!Directory.Exists(_caminho))
        {
            Directory.CreateDirectory(_caminho);
        }
    }


    void Update()
    {
        if (Input.GetKeyDown(KeyCode.P))
        {

            string nomeImagem = _caminho + DateTime.Now.Ticks.ToString() + ".png";
//O recurso Application.Cap...está obsoleta na versão 2017 da Unity.

            Application.CaptureScreenshot(nomeImagem, 2);//Unity < 2017
            //ScreenCapture.CaptureScreenshot(nomeImagem, 2); //Unity >= 2017
        }
    }
}

Veja a explicação para cada parte do código, logo abaixo.

     * Directory.Exists() - Verifica se o diretório existe

     * Directory.CreateDirectory() - Cria um diretório

     * Application.dataPath - Obtém o caminho de onde o projeto está sendo executado

     * Input.GetKeyDown() - Verifica se uma tecla foi pressionada

     * KeyCode.P - Obtém o código correspondente a tecla P

     * Application.CaptureScreenshot() - Captura a imagem a partir da câmera principal ativa

     * DateTime.Now.Ticks - Retorna os tiques da data e hora atual

     * using System.IO - Importa a biblioteca de entrada e saída de dados

Basta criar o script e adiciona-lo em algum GameObject em cena.

Captura de tela com Unity 3D
Captura de tela com Unity 3D

Figura 2: Imagem captura com o script criado

Até a próxima!

Gunnar Correa
Gunnar Correa

Autodidata, Graduado em Desenvolvimento Web, Especialista em Tecnologias na Educação e Pós-graduando em Segurança da Informação. Começou seus estudos na área de programação quando era criança, e atualmente, está estudando desenvolvimento de jogos. Fundador da SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.

Todos os nossos cursos em promoção
Todos os nossos cursos em promoção

Webstories

Todos os nossos cursos em promoção


Deixe um comentário
Aguarde...
Todos os nossos cursos em promoção