Logo SatellaSoft



Atenção: nosso site receberá uma nova atualização em seus serviços em breve. Você poderá ter uma experiência ruim com renderização de algumas imagens, porém elas serão solucionadas na próxima atualização.


Abrindo portões com Unity 2017

Acionando alavanca e abrindo dois portões, uma das clássicas cenas de Resident Evil 5.


Ícone homem Gunnar Correa
Ícone data de publicação 21/09/2017
Ícone quantidade de visualização 5,213
Ícone bandeira do Brasil Português

Se você já jogou Resident Evil 5, então você já acionou muitas alavancas para debloquear elevador, portas e outros mecanismos. Este artigo é um complemento a duas videoaula de Unity 2017, onde recriamos uma classifica cena de Resident Evil 5.

Basicamente temos dois portões e uma alavanca, ao acionar a alavanca e terminar a sua animação, damos play na animação dos portões. Todas as animações estão com o Loop Mode desativado, pois a animação só deve ser reproduzida uma única vez.

Para fazer a animação, usamos a ferramenta Animation da Unity e ligamos o REC, assim podemos inserir os Keyframes em determinados lugar para criar a transição.

Unity Animation Editor 2017

Image 1: Animation Unity 2017

 

Abrindo portões com Unity 2017 - Parte 1, Preparando as animações

 

Abrindo portões com Unity 2017 - Parte 2, Executando as animações via script

 

 

Alavanca.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Alavanca : MonoBehaviour
{

    public GameObject _player;

    private Animator _anima;
    private float _playerDistance;
    private int _acionou = 0;
    void Start()
    {
        _anima = this.GetComponent();
    }

    void FixedUpdate()
    {
        if (_acionou == 1)
        {
            _anima.SetTrigger("Acionar");
            _acionou = 2;
        }
    }

    void Update()
    {
        _playerDistance = Vector3.Distance(_player.transform.position, this.transform.position);

        if (_playerDistance <= 3 && Input.GetKeyDown(KeyCode.E) && _acionou == 0)
        {
            _acionou = 1;
        }
    }

    void AbrirPortao()
    {
        Portao._estado = true;
        Destroy(this.GetComponent());
    }
}

 

Portao.cs

using System.Collections;
using System.Collections.Generic;
using UnityEngine;

public class Portao : MonoBehaviour
{

    private Animator _anima;

    public static bool _estado = false;
    void Start()
    {
        _anima = this.GetComponent();
    }

    void Update()
    {
        if (_estado)
        {
            _anima.SetTrigger("Abrir");
            _estado = false;
        }
    }

    void RemoverComponente()
    {
        Destroy(this.GetComponent());
    }
}

 

Você pode fazer o download gratuito do modelo no Sketchfab, basta acessar o link https://sketchfab.com/models/84155b55e00a4848ba85ad8b486f3aaa

 

Então é isso, espero que tenha gostado, qualquer dúvida, critica ou sugestões deixem nos comentários.

 

Até a próxima!




Sobre o autor


Gunnar Correa

Nome: Gunnar Correa

Site: http://www.gunnarcorrea.com


Autodidata, graduado em Desenvolvimento Web e especialista em Tecnologias na Educação em uma universidade no interior de São Paulo. Comecei meus estudos na área de programação quando ainda era criança, e atualmente estou estudando desenvolvimento de jogos.

Sou o CEO do portal SatellaSoft, criado em 2009 com o intuito de compartilhar conhecimento de forma gratuita e inédita.


Comentários



É necessário estar autenticado para comentar, clique aqui para se registrar ou aqui para acessar a sua conta!

 


 

Siga-nos