Captura de tela (screenshot) com Unity 3D

Gunnar CorreaGunnar Correa30/07/2016 às 02:05:00 - 10.298 acessos

Captura de tela (screenshot) com Unity 3D

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


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

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

Figura 2: Imagem captura com o script criado

Até a próxima!



unity 3d unity 5 unity screenshot unity captura tela captura de tela unity print screen unity games unity grátis aula unity 5 unity capturescreenshot unity engine unity tutorial

Compartilhe


Gunnar Correa

Gunnar Correa

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



Site atualizado

Olá, nosso site recebeu uma nova atualização e por conta disso, alguns artigos ainda estão sendo atualizados. Dependendo do conteúdo que você procura, poderá encontrar imagens e trechos de códigos mal formatados.

Estamos trabalhando para normalizar todos os conteúdos, muito em breve, esse problema não mais existirá.


Comentários