Usar o Mesh Collider no Unity 5

Em alguns casos podemos ter a necessidade de implementar um triger para dar alguma "acção" ao jogo,

por exemplo, uma porta automática a abrir, um zombie a aparecer, ou mesmo a desactivação

objectos desnecessário à passagem do avatar. Neste tutorial vou exemplificar como uma cápsula aparece à passagem do avatar.
Em vez de o reaparecimento de uma cápsula pode-se fazer desaparecer um chão falso que, à passagem do avatar o faz cair, a imaginação é que irá comandar a criatividade.

Deixo um video de como é feito todo o processo e os passos são os seguintes:



- Novo terreno
- Nova esfera
- Novo avatar
- Centrar o avatar
- Remover o componente "mesh renderer" do objecto esfera
- Activar o "edit collider" do objecto Esfera
- Estender a área desejada de contacto
- Nova cápsula
- Em assets criar novo script em c# com nome "activarCapsule"
- Editar com 2 clics no ficheiro activarCapsule.cs
- Configurar uma variável de entrada do tipo "Gameobject" chamada capsule:
public GameObject Capsule;
- No procedimento de arranque desactivar a cápsula para não aparecer no inicio:
void Start()
{
capsule.SetActive(false);
}
- No procedimento de activação do trigger ligar o objecto:
void OnTriggerEnter(Collider other)
{
capsule.SetActive(true);
}
- Gravar o ficheiro activarcapsule.cs
- Arrastar o script activarcapsule.cs como componente para dentro do objecto Sphere, é o collider deste objecto que é o usado
- Arrastar o objecto capsule para a variável do script activarcapsule.cs adicionado ao objecto sphere como componente.
- Reposicionar a câmara dentro do avatar
- Activar o "is trigger" no componente "Sphere Collider" do objecto "Sphere", sem esta opção a área de colisão não é activada

Ao movermos o boneco este entra na área de colisão e activa a cápsula.
Para ter reacções diferentes basta arrastar objectos ou grupo de objectos para a variável do script cartivarcapsule.cs adicionado como componente ao objecto sphere.
Também se pode substituir :
void OnTriggerEnter(Collider other)
{
capsule.SetActive(true);
}
por 
void OnTriggerEnter(Collider other)
{
Application.LoadLevel("Save02");
}
Com esta alteração ao se passar pelo collider o jogo carrega o schene "Save02" previamente gravado e compilado (build), uma forma de se passar de nível ou mesmo por uma porta.

Júlio Vale


Sem comentários:

Enviar um comentário