Abrindo e fechando portas com Unity

Gunnar CorreaGunnar Correa11/02/2018 às 03:57:38 - 8.881 acessos

Crie animações para diferentes tipos de portas usando a Unity 3D


Dentro da Unity 3D, podemos criar diferentes tipos de animações sem a necessidade de softwares de terceiro, como o Blender 3D. Nestas aulas você aprende a criar animações para três tipos de portas, que são elas: porta simples, porta dupla e porta automática.

Para criar a animação é muito simples, basta usar a ferramenta Animation e criar dois Animation Clip, um com a animação de abrir e o outro com a animação de fechar. Após criar as animações, é necessário criar as transições no Animator Controller, como mostra a figura abaixo.

Animator Controller animações de portas

Após as configurações no Animator Controller, é necessário criar os parâmetros do tipo trigger e associa-los as suas devidas transições. Por último basta criar um script que passe os valores para o Animator Controller.

Parâmetros no animator controller, para abrir as portas.

Confira as três videoaulas abaixo

Abrindo e fechando porta com Unity

 

Abrindo e fechando porta dulpla com Unity

 

Abrindo e fechando porta automática com Unity

Para complementar este artigo, abaixo estão os dois scripts utilizados nas videoaulas.

PortaSimples.cs

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

public class PortaSimples : MonoBehaviour
{

	public Animator _animator;

	private bool _colidindo;
	private bool _portaAbera = false;

	void Update ()
	{
		if (Input.GetKeyDown (KeyCode.E) && _colidindo) {
			_portaAbera = true;
			_animator.SetTrigger ("Abrir");
		}
	}

	void OnTriggerEnter (Collider _col)
	{
		if (_col.gameObject.CompareTag ("Player")) {
			_colidindo = true;
		}
	}

	void OnTriggerExit (Collider _col)
	{
		if (_col.gameObject.CompareTag ("Player")) {
			if (_portaAbera) {
				_animator.SetTrigger ("Fechar");
			}

			_colidindo = false;
		}
	}
}

 

PortaAutomatica.cs

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

public class PortaAutomatica : MonoBehaviour {

	public Animator _animator;

	private bool _colidindo;
	private bool _portaAbera = false;

	void Update ()
	{
		if (_colidindo) {
			_portaAbera = true;
			_animator.SetTrigger ("Abrir");
		}
	}

	void OnTriggerEnter (Collider _col)
	{
		if (_col.gameObject.CompareTag ("Player")) {
			_colidindo = true;
		}
	}

	void OnTriggerExit (Collider _col)
	{
		if (_col.gameObject.CompareTag ("Player")) {
			if (_portaAbera) {
				_animator.SetTrigger ("Fechar");
			}

			_colidindo = false;
		}
	}
}

Por hora é isso, dúvidas deixem nos comentários e até a próxima.

 

 


Unity Portas com Unity Abrir porta Unity Fechar porta Unity Porta automática Unity Porta dupla Unity porta simples Unity programação de jogos Desenvolvimento com Unity 3D Curso Unity

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