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.
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!