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

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéisines09cachapa
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfprofesfrancleite
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números Mary Alvarenga
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfTutor de matemática Ícaro
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelGilber Rubim Rangel
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaHELENO FAVACHO
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecniCleidianeCarvalhoPer
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfHELENO FAVACHO
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médiorosenilrucks
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxMauricioOliveira258223
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdfLeloIurk1
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteVanessaCavalcante37
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTailsonSantos1
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxLuizHenriquedeAlmeid6
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Ilda Bicacro
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfEmanuel Pio
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorEdvanirCosta
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfmaurocesarpaesalmeid
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxLusGlissonGud
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...Rosalina Simão Nunes
 

Último (20)

About Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de HotéisAbout Vila Galé- Cadeia Empresarial de Hotéis
About Vila Galé- Cadeia Empresarial de Hotéis
 
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdfPRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
PRÉDIOS HISTÓRICOS DE ASSARÉ Prof. Francisco Leite.pdf
 
CRUZADINHA - Leitura e escrita dos números
CRUZADINHA   -   Leitura e escrita dos números CRUZADINHA   -   Leitura e escrita dos números
CRUZADINHA - Leitura e escrita dos números
 
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdfCurrículo - Ícaro Kleisson - Tutor acadêmico.pdf
Currículo - Ícaro Kleisson - Tutor acadêmico.pdf
 
Dicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim RangelDicionário de Genealogia, autor Gilber Rubim Rangel
Dicionário de Genealogia, autor Gilber Rubim Rangel
 
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia TecnologiaPROJETO DE EXTENSÃO I - Radiologia Tecnologia
PROJETO DE EXTENSÃO I - Radiologia Tecnologia
 
matematica aula didatica prática e tecni
matematica aula didatica prática e tecnimatematica aula didatica prática e tecni
matematica aula didatica prática e tecni
 
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdfPROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
PROJETO DE EXTENSÃO - EDUCAÇÃO FÍSICA BACHARELADO.pdf
 
apostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médioapostila projeto de vida 2 ano ensino médio
apostila projeto de vida 2 ano ensino médio
 
Slides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptxSlides sobre as Funções da Linguagem.pptx
Slides sobre as Funções da Linguagem.pptx
 
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
421243121-Apostila-Ensino-Religioso-Do-1-ao-5-ano.pdf
 
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcanteCOMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
COMPETÊNCIA 2 da redação do enem prodção textual professora vanessa cavalcante
 
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptxTeoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
Teoria heterotrófica e autotrófica dos primeiros seres vivos..pptx
 
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptxSlides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
Slides Lição 6, CPAD, As Nossas Armas Espirituais, 2Tr24.pptx
 
Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!Rota das Ribeiras Camp, Projeto Nós Propomos!
Rota das Ribeiras Camp, Projeto Nós Propomos!
 
Historia da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdfHistoria da Arte europeia e não só. .pdf
Historia da Arte europeia e não só. .pdf
 
INTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de ProfessorINTERVENÇÃO PARÁ - Formação de Professor
INTERVENÇÃO PARÁ - Formação de Professor
 
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdfplanejamento_estrategico_-_gestao_2021-2024_16015654.pdf
planejamento_estrategico_-_gestao_2021-2024_16015654.pdf
 
Apresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptxApresentação em Powerpoint do Bioma Catinga.pptx
Apresentação em Powerpoint do Bioma Catinga.pptx
 
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de..."É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
"É melhor praticar para a nota" - Como avaliar comportamentos em contextos de...
 

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); }