SlideShare uma empresa Scribd logo
1 de 15
Projetos RAD : Unity 3D 
Colisões Parte 2 
Character Controller e Triggers 
Augusto Bülow
Unity 
• Colisões Objetos 
– Collider : formato da colisão 
• Estáticos (static collider) 
– Dinâmicos : componentes adicionais 
• RigidBody : 
– movimento e comportamento físico (realístico) 
• Character Controller : 
– Componnte especial para players 
– Detecção de colisões geral 
– Controle mais direto (física = simulação automática)
Unity 
• Character Controller 
– Personagens em geral controlados por animações e 
ações, sem necessariamente um comportamento 
realístico (total) 
• Utiliza-se Character Controller 
• Maior controle geral (estável em colisões) 
• Transformações baseadas principalmente em script 
– Quando personagem planejado para ter física real: 
• Utiliza-se RigidBody 
• Comportamento imprevisível (realístico) 
• Transformações automáticas baseadas em colisões
Unity 
• Character Controller 
– Adiciona-se por: 
• Component->Physics->Character Controller 
– Sobrepõe o Collider anterior do objeto 
– Pode ser utilizado com RigidBody, mas sua 
utilização é alternativa (à física realística) 
– Character controller: 
• comandos específicos para controle / movimento
Unity 
• Character Controller 
– Altura 
– Raio 
– Slope Limit 
• Limite para subida em 
rampas (graus) 
– Step Offset 
• Altura subida degraus 
– Skin Width 
• Valores maiores para 
evitar colisões 
próximas (grudar = 
stuck)
Unity 
• Acessar o componente Character Controller 
não pode ser diretamente 
• Precisa localizar o componente com: 
var ponteiro = GetComponent(CharacterControler) 
• GetComponent pode ser usado para acessar 
qualquer componente do Objeto 
• Chamar pelo nome, sem espaços, sem aspas
Unity 
• Character Controller : função Move 
• Código básico para movimento: 
var velocidade = 15; 
var forca : Vector3; 
function Update () { 
//CAPTURA INPUT BASICO 
forca.x = Input.GetAxis("Horizontal"); 
forca.y = 0; 
forca.z = Input.GetAxis("Vertical"); 
forca *= velocidade; 
forca *= Time.deltaTime; 
var controller = GetComponent(CharacterController); 
controller.Move(forca); 
}
Unity 
• Não usa gravidade direta 
• Tem Flags auxiliares 
– Setadas com o movimento 
– isGrounded = no chão 
– CollisionFlags = detalhes da colisão 
• None 
• Sides 
• Above 
• Below
Unity 
• Criando gravidade manualmente 
– Basicamente aplicar força y (gravidade) 
var gravidade = 20; 
Function Update() { 
//CAPTURA INPUT BASICO 
forca.x = Input.GetAxis("Horizontal"); 
//forca.y = 0; 
forca.z = Input.GetAxis("Vertical"); 
forca *= velocidade; 
//APLICANDO GRAVIDADE SEMPRE 
forca.y -= gravidade; 
forca *= Time.deltaTime; 
....
Unity 
• Criando pulo básico – força y (por tecla) 
– Basicamente aplicar força y (pulo) 
– Gravidade devolve ela a zero (ao solo) 
– Adicionalmente – só pular se no chão (isGrounded) 
var forca_pulo = 20; 
var no_chao = 0; 
.... (antes do controller.Move) 
if (Input.GetKeyDown("space") && no_chao == 1) { 
forca.y = forca_pulo; 
} 
... (FLAG atualizada após o Move) 
if (controller.isGrounded) { 
no_chao = 1; 
}
Unity 
• Tratando colisões manualmente 
– Colisões disparam mensagens para os objetos 
envolvidos 
– Colisões em geral (Colliders): 
• OnCollisionEnter 
• OnCollisionStay 
• OnCollisionExit 
– Colisões Character Controller : ESPECIAL 
• OnControllerColliderHit 
• Objeto que colidiu também é passado na 
mensagem (ponteiro)
Unity 
• Character Controller : Colisão básica 
• Recebe um ControllerColliderHit 
– Possível acessar propriedades do objeto colidido 
• Mensagem OnControllerColliderHit 
• Exemplo: 
– retornar o nome do objeto colidido em um Guitext 
function OnControllerColliderHit (quem : ControllerColliderHit ) { 
debug = GameObject.Find("Debug1"); 
debug.guiText.text = "Colisao: "; 
debug.guiText.text += quem.gameObject.name; 
}
Unity 
• RigidBody e Colliders normais 
• Recebe um Collider 
– Possível acessar propriedades do objeto colidido 
• Mensagens OnCollisionEnter 
• Observar: 
– Character Controller uso diferenciado 
function OnCollisionEnter (quem : Collider ) { 
debug = GameObject.Find("Debug1"); 
debug.guiText.text = "Colisao: "; 
debug.guiText.text += quem.gameObject.name; 
}
Unity 
• Trigger = Gatilhos 
• Colisões especiais – objetos de marcação 
– Não esperada colisão com reação diretamente 
– Colisão para ativação ou informação 
– Objeto basicamente passável (mas detecta a colisão) 
– Uso: 
• Bônus e itens 
• indicar entrada em parte do cenário, etc 
– Mensagens Específicas 
• OnTriggerEnter 
• OnTriggerStay 
• OnTriggerExit
Unity 
• Trigger : Exemplo Colisão 
function OnTriggerEnter (quem : Collider ) { 
debug = GameObject.Find("Debug1"); 
debug.guiText.text = "Colisao TRIGGER: "; 
debug.guiText.text += quem.gameObject.name; 
//Remove item que colidiu 
Destroy(quem.gameObject); 
}

Mais conteúdo relacionado

Mais de Marcos Batista (15)

Aula terrain
Aula terrainAula terrain
Aula terrain
 
Aula som
Aula somAula som
Aula som
 
Aula sky
Aula skyAula sky
Aula sky
 
Aula particulas
Aula particulasAula particulas
Aula particulas
 
Aula modelos
Aula modelosAula modelos
Aula modelos
 
Aula menus
Aula menusAula menus
Aula menus
 
Aula maps
Aula mapsAula maps
Aula maps
 
Aula ia2
Aula ia2Aula ia2
Aula ia2
 
Aula ia
Aula iaAula ia
Aula ia
 
Aula gui
Aula guiAula gui
Aula gui
 
Aula cameras
Aula camerasAula cameras
Aula cameras
 
Aula anima-modelos
Aula anima-modelosAula anima-modelos
Aula anima-modelos
 
Aula4 debug
Aula4   debugAula4   debug
Aula4 debug
 
Aula2 intro2
Aula2   intro2Aula2   intro2
Aula2 intro2
 
Aula1 intro
Aula1  introAula1  intro
Aula1 intro
 

Último

Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Mary Alvarenga
 
tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1Michycau1
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxLaurindo6
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxLuizHenriquedeAlmeid6
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptMaiteFerreira4
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOColégio Santa Teresinha
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptxthaisamaral9365923
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaronaldojacademico
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxLuizHenriquedeAlmeid6
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.silves15
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividadeMary Alvarenga
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBAline Santana
 
Transformações isométricas.pptx Geometria
Transformações isométricas.pptx GeometriaTransformações isométricas.pptx Geometria
Transformações isométricas.pptx Geometriajucelio7
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...licinioBorges
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxLuizHenriquedeAlmeid6
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinhaMary Alvarenga
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfMarianaMoraesMathias
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADOcarolinacespedes23
 
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptxSEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptxCompartilhadoFACSUFA
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManuais Formação
 

Último (20)

Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
Grupo Tribalhista - Música Velha Infância (cruzadinha e caça palavras)
 
tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1tabela desenhos projetivos REVISADA.pdf1
tabela desenhos projetivos REVISADA.pdf1
 
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptxAULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
AULA SOBRE AMERICA LATINA E ANGLO SAXONICA.pptx
 
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptxSlides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
Slides Lição 04, Central Gospel, O Tribunal De Cristo, 1Tr24.pptx
 
Literatura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.pptLiteratura Brasileira - escolas literárias.ppt
Literatura Brasileira - escolas literárias.ppt
 
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃOLEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
LEMBRANDO A MORTE E CELEBRANDO A RESSUREIÇÃO
 
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx“Sobrou pra mim” - Conto de Ruth Rocha.pptx
“Sobrou pra mim” - Conto de Ruth Rocha.pptx
 
Rotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riquezaRotas Transaarianas como o desrto prouz riqueza
Rotas Transaarianas como o desrto prouz riqueza
 
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptxSlides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
Slides Lição 03, Central Gospel, O Arrebatamento, 1Tr24.pptx
 
A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.A horta do Senhor Lobo que protege a sua horta.
A horta do Senhor Lobo que protege a sua horta.
 
Música Meu Abrigo - Texto e atividade
Música   Meu   Abrigo  -   Texto e atividadeMúsica   Meu   Abrigo  -   Texto e atividade
Música Meu Abrigo - Texto e atividade
 
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASBCRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
CRÔNICAS DE UMA TURMA - TURMA DE 9ºANO - EASB
 
Transformações isométricas.pptx Geometria
Transformações isométricas.pptx GeometriaTransformações isométricas.pptx Geometria
Transformações isométricas.pptx Geometria
 
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
11oC_-_Mural_de_Portugues_4m35.pptxTrabalho do Ensino Profissional turma do 1...
 
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptxSlides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
Slides Lição 5, CPAD, Os Inimigos do Cristão, 2Tr24, Pr Henrique.pptx
 
Bullying - Texto e cruzadinha
Bullying        -     Texto e cruzadinhaBullying        -     Texto e cruzadinha
Bullying - Texto e cruzadinha
 
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdfPROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
PROGRAMA DE AÇÃO 2024 - MARIANA DA SILVA MORAES.pdf
 
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
activIDADES CUENTO  lobo esta  CUENTO CUARTO GRADOactivIDADES CUENTO  lobo esta  CUENTO CUARTO GRADO
activIDADES CUENTO lobo esta CUENTO CUARTO GRADO
 
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptxSEMINÁRIO QUIMICA AMBIENTAL -  PPGEEA - FINAL.pptx
SEMINÁRIO QUIMICA AMBIENTAL - PPGEEA - FINAL.pptx
 
Manual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envioManual da CPSA_1_Agir com Autonomia para envio
Manual da CPSA_1_Agir com Autonomia para envio
 

Unity 3D Character Controller e Triggers

  • 1. Projetos RAD : Unity 3D Colisões Parte 2 Character Controller e Triggers Augusto Bülow
  • 2. Unity • Colisões Objetos – Collider : formato da colisão • Estáticos (static collider) – Dinâmicos : componentes adicionais • RigidBody : – movimento e comportamento físico (realístico) • Character Controller : – Componnte especial para players – Detecção de colisões geral – Controle mais direto (física = simulação automática)
  • 3. Unity • Character Controller – Personagens em geral controlados por animações e ações, sem necessariamente um comportamento realístico (total) • Utiliza-se Character Controller • Maior controle geral (estável em colisões) • Transformações baseadas principalmente em script – Quando personagem planejado para ter física real: • Utiliza-se RigidBody • Comportamento imprevisível (realístico) • Transformações automáticas baseadas em colisões
  • 4. Unity • Character Controller – Adiciona-se por: • Component->Physics->Character Controller – Sobrepõe o Collider anterior do objeto – Pode ser utilizado com RigidBody, mas sua utilização é alternativa (à física realística) – Character controller: • comandos específicos para controle / movimento
  • 5. Unity • Character Controller – Altura – Raio – Slope Limit • Limite para subida em rampas (graus) – Step Offset • Altura subida degraus – Skin Width • Valores maiores para evitar colisões próximas (grudar = stuck)
  • 6. Unity • Acessar o componente Character Controller não pode ser diretamente • Precisa localizar o componente com: var ponteiro = GetComponent(CharacterControler) • GetComponent pode ser usado para acessar qualquer componente do Objeto • Chamar pelo nome, sem espaços, sem aspas
  • 7. Unity • Character Controller : função Move • Código básico para movimento: var velocidade = 15; var forca : Vector3; function Update () { //CAPTURA INPUT BASICO forca.x = Input.GetAxis("Horizontal"); forca.y = 0; forca.z = Input.GetAxis("Vertical"); forca *= velocidade; forca *= Time.deltaTime; var controller = GetComponent(CharacterController); controller.Move(forca); }
  • 8. Unity • Não usa gravidade direta • Tem Flags auxiliares – Setadas com o movimento – isGrounded = no chão – CollisionFlags = detalhes da colisão • None • Sides • Above • Below
  • 9. Unity • Criando gravidade manualmente – Basicamente aplicar força y (gravidade) var gravidade = 20; Function Update() { //CAPTURA INPUT BASICO forca.x = Input.GetAxis("Horizontal"); //forca.y = 0; forca.z = Input.GetAxis("Vertical"); forca *= velocidade; //APLICANDO GRAVIDADE SEMPRE forca.y -= gravidade; forca *= Time.deltaTime; ....
  • 10. Unity • Criando pulo básico – força y (por tecla) – Basicamente aplicar força y (pulo) – Gravidade devolve ela a zero (ao solo) – Adicionalmente – só pular se no chão (isGrounded) var forca_pulo = 20; var no_chao = 0; .... (antes do controller.Move) if (Input.GetKeyDown("space") && no_chao == 1) { forca.y = forca_pulo; } ... (FLAG atualizada após o Move) if (controller.isGrounded) { no_chao = 1; }
  • 11. Unity • Tratando colisões manualmente – Colisões disparam mensagens para os objetos envolvidos – Colisões em geral (Colliders): • OnCollisionEnter • OnCollisionStay • OnCollisionExit – Colisões Character Controller : ESPECIAL • OnControllerColliderHit • Objeto que colidiu também é passado na mensagem (ponteiro)
  • 12. Unity • Character Controller : Colisão básica • Recebe um ControllerColliderHit – Possível acessar propriedades do objeto colidido • Mensagem OnControllerColliderHit • Exemplo: – retornar o nome do objeto colidido em um Guitext function OnControllerColliderHit (quem : ControllerColliderHit ) { debug = GameObject.Find("Debug1"); debug.guiText.text = "Colisao: "; debug.guiText.text += quem.gameObject.name; }
  • 13. Unity • RigidBody e Colliders normais • Recebe um Collider – Possível acessar propriedades do objeto colidido • Mensagens OnCollisionEnter • Observar: – Character Controller uso diferenciado function OnCollisionEnter (quem : Collider ) { debug = GameObject.Find("Debug1"); debug.guiText.text = "Colisao: "; debug.guiText.text += quem.gameObject.name; }
  • 14. Unity • Trigger = Gatilhos • Colisões especiais – objetos de marcação – Não esperada colisão com reação diretamente – Colisão para ativação ou informação – Objeto basicamente passável (mas detecta a colisão) – Uso: • Bônus e itens • indicar entrada em parte do cenário, etc – Mensagens Específicas • OnTriggerEnter • OnTriggerStay • OnTriggerExit
  • 15. Unity • Trigger : Exemplo Colisão function OnTriggerEnter (quem : Collider ) { debug = GameObject.Find("Debug1"); debug.guiText.text = "Colisao TRIGGER: "; debug.guiText.text += quem.gameObject.name; //Remove item que colidiu Destroy(quem.gameObject); }