Sie sind auf Seite 1von 8

Aula 4: Animaes e Triggers

Estruturando o Projeto Unity

Antes de comear a desenvolver um projeto com Unity, uma boa prtica


estruturar os diretrios do projeto. Crie as seguintes pastas:

Para criar um Script em C#:


1. Na pasta Scripts clique com o boto direito, abrir uma tela.
Selecione Create> C# Script.
2. Digite o nome do Script.

Eventos de Coliso
Mtodos utilizados para deteco de coliso em Objetos de
cena:

Quando algum objeto colide um outro objeto:


void OnTriggerEnter(Collider obj)
{
Debug.Log(Colidiu: + obj.name);
}

Quando algum objeto colide e transpassa um outro objeto:


void OnTriggerExit(Collider obj)
{
Debug.Log(Colidiu e saiu: + obj.name);
}

Para ativar a coliso de objetos necessrio inserir no GameObject o


Componente Collider, podem ser os seguintes tipos de colises:

Box Collider
Capsule Collider
Mesh Collider
Sphere Collider

Para utilizar o componente collider sem coliso para utilizar em gatilhos,


deve-se marcar a opo: Is Trigger

Exemplo:
1. Selecionar um Objeto
2. Ir no Inspector e clicar em Add Componet
3. Selecionar o tipo de Collider

4. Definir o Collider como Trigger


5. Criar um Script para ativar o Trigger:

using UnityEngine;
using System.Collections;

public class GatilhoTest : MonoBehaviour {

void OnTriggerEnter(Collider obj)


{
Debug.Log("O objeto " + obj.name + " |ENTROU| no Collider");
}

void OnTriggerExit(Collider obj)


{
Debug.Log("O objeto " + obj.name + " |SAIU| no Collider");
}
}

Animaes

Todo Objeto que possui animaes devem ser configurados. Para configurar
os objetos basta seguir os seguintes passos:
1. Selecione o Objeto original na pasta do projeto. Esse exemplo o
formato .fbx;
2. No Inspector seleciona a aba Rig
3. Em Animation Type: Selecione Legacy

4. Selecione a Aba Animations


5. Em Clips, pode-se renomear a animao, possvel visualizar o
momento em que a animao inicia e termina.
6. Se seu Modelo possuir mais de uma animao, possvel criar
separadamente cada uma. Para isso clique no (+) em Clips. Na linha
do tempo abaixo, selecione o incio e o fim da animao.
7. Insira na cena o modelo
8. Selecione-o, no Inspector, no componente Animation, desmarque a
opo Play Automatically

Script para Iniciar a Animao


Para iniciar a animao, pode-se utilizar um script:
using UnityEngine;
using System.Collections;

public class PlayAnimation : MonoBehaviour {

public void playAnimation()


{
GetComponent<Animation>().Play(); //Se tiver apenas uma animao
GetComponent<Animation>().Play("NomeDaAnimacao"); //Se tiver mais de uma
animao
}
}
Exemplo em Sala de Aula
1. Crie um projeto Unity
2. Crie uma Cena
3. Crie as pastas para estruturar o projeto
4. Baixe o Modelo, os sons e as Normal Maps disponibilizados pelo
professor
5. Coloque os arquivos em suas pastas
6. Insira na cena: Terreno, o Modelo e um Player

Inserindo Colliders no Modelo

O modelo separado em 3 partes:

Parede
1. Selecione a parede
2. No inspector adicione o componente Mesh Collider
Porta
1. Selecione a porta
2. No inspector adicione o componente Box Collider
Portal
1. Selecione o portal
2. No inspector adicione o componente Mesh Collider
3. Continuando no inspector, para que o Player possa abrir
a porta necessrio ter um Collider apenas para servir
como gatilho. Insira um componente do tipo Box Collider.
4. Ajuste o Size em Y para 1.
5. Selecione o Box Collider e marque a opo Is Trigger
Criando os Scripts

Script para Gerenciar a Animao:


Nome: ModelDoor.cs
using UnityEngine;
using System.Collections;

public class ModelDoor: MonoBehaviour {

public bool open = false;


public AudioSource audioDoor;
public AudioClip doorOpenSound;
public AudioClip doorCloseSound;

void Start()
{
audioDoor = GetComponent<AudioSource>();
}

public void OpenDoor()


{
if(!open)
{
open = true;
GetComponent<Animation>().Play("openDoor");
audioDoor.PlayOneShot(doorOpenSound);
Debug.Log ("Abrindo Porta");
}
}

public void CloseDoor()


{
if(open)
{
open = false;
GetComponent<Animation>().Play("closeDoor");
audioDoor.PlayOneShot(doorCloseSound);
Debug.Log ("Fechando Porta");
}
}
}
Script para Abrir a Porta:
Nome: OpenDoor.cs
using UnityEngine;
using System.Collections;

public class OpenDoor : MonoBehaviour {

public ModelDoor porta;

void OnTriggerEnter(Collider obj)


{
if(obj.name == "Jogador")
{
Debug.Log ("Jogador Triggered Enter");

if (!porta.open) {
porta.OpenDoor ();
}
}
}

void OnTriggerExit(Collider obj)


{
Debug.Log ("Jogador Triggered Exit");
if (porta.open) {
porta.CloseDoor ();
}
}
}

Inserindo os Scripts no Modelo

1. Selecione o Script ModelDoor.cs e adicione ao modelo.


2. No componente do Script, selecione o udio para a caixa Door Open
Sound e Door Close Sound

3. Selecione o Script OpenDoor e adicione ao objeto interno do modelo,


Portal
4. No campo Porta, selecione o modelo que possui o script ModelDoor.

Das könnte Ihnen auch gefallen