Unity 3D Character Controller e Triggers

Slides:



Advertisements
Apresentações semelhantes
Tópicos Especiais I: Engines Exercícios Propostos Aula 01
Advertisements

Tópicos Especiais I: Engines Introdução ao
Tópicos Especiais I: Colisão
1º Semestre 2010 > PUCPR > Pós Jogos
Lógica de programação de jogos
Controlador Lógico Programável - CLP
Triggers Renata Viegas.
Animação de Personagens
Energia Potencial e Conservação da Energia
Banco de Dados SQL TRIGGERS (Gatilhos)
1 Funções Trajectória de Projéctil DI/FCT/UNL 1º Semestre 2004/2005.
Ciclos, Vectores e Gráficos Simulação da Queda de Corpos II
Fecilcam - 24/setembro/ Modelagem Dinâmica Exercício 01: A Figura abaixo é um diagrama de estados simplificado e parcialmente completo para o controle.
SISTEMA É UMA ENTIDADE QUE MANTEM SUA EXISTÊNCIA ATRAVÉS DA INTERAÇÃO DE SUAS PARTES ( Bertalanffy ) Interação Mútua Diferente duma simples.
Introdução ao JavaScript JavaScript 03
Simulação Física de Corpos Rígidos com Detecção e Reação à Colisões
Como utilizar esta ferramenta para apresentações profissionais.
OBS: Este ppt não é o definitivo (Versão Beta)
Robson Godoi / Sandra Siebra
Prof. Edison Oliveira de Jesus
Selma Shin Shimizu Melnikoff 2006
Listas Encadeadas.
Aula 8 - Sumário Inserir painel rolante.
Capítulo 10 Strings & File I/O. Strings Strings são um conjunto de Caracteres ASCII. No Controle de Instrumentação pode-se converter valores numéricos.
Diagramas de Sequência e Comunicação
Componentes de um jogo, desenvolvimentoComponentes de um jogo, desenvolvimento.
Programação de Scripts
Diagramas de Colaboração e Componentes
LISTAS DUPLAMENTE ENCADEADAS
Python: Exceções, Iteradores e Geradores
Prof. Natalia Castro Fernandes Mestrado em Telecomunicações – UFF 2º semestre/2012.
Aula 11 Torneamento - Introdução Parte 1
Introdução ao MatLab Aula 4
Lógica de Programação de Jogos
Estruturas de Dados Aula 9: Listas (parte 1)
Pule a bola Amanda von Zuben Antonio Carlos Lucas Souza Mariana Bueno
Troca de Mensagens Assíncronas n Canais de comunicação são filas ilimitadas de mensagens. n Processos inserem elementos nessa flia através de comandos.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Apresentação SGO Sistema de Gerenciamento de Operações
Protocolos e Conceitos de Roteamento – Capítulo 7
Propriedades Moleculares da Matéria
Escola Técnica Estadual Cícero Dias
Planilha Eletrônica - Excel
CONFIDENCIAL. Distribuição Apenas a Parceiros Sem Divulgação. A Microsoft não faz garantias, explícitas ou implícitas. © 2012 Microsoft. Todos os Direitos.
Redes em linha Este tipo de rede em linha, conforme a figura 1 representa, emprega basicamente cabos coaxiais (figura 2). Actualmente, não é mais usado.
Computação Gráfica – Animação
Programação e Aplicações Gráficas
Física.
1 15/4/ :36 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
© 2007 Cisco Systems, Inc. All rights reserved.Cisco Public ITE PC v4.0 Chapter 1 1 RIP versão 1 Protocolos e Conceitos de Roteamento – Capítulo 5.
Aula Prática 11 Operações com Arquivos Monitoria
© 2012 Microsoft Corporation. Todos os direitos reservados. Adicione um contato Sua lista de Contatos simplifica suas comunicações e permite que você veja.
Computação Gráfica – Animação
Realidade Virtual Aula 2 Remis Balaniuk. Enxergando grande, começando pequeno Quem começa a aprender RV normalmente sofre um primeiro impacto negativo.
MODELAGEM COMPORTAMENTAL PARA AGENTES AUTÔNOMOS EM AMBIENTE REAIS
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
Criação de um jogo de labirinto no UNITY (do tipo 2d e usando csharp)
AMANDA VON ZUBEN ANTONIO CARLOS LUCAS SOUZA MARIANA BUENO VINICIUS MENDES Pule a bola.
COS600 | Animação e Jogos Filipe Yamamoto Fábio Castanheira Miguel Fernandes.
‘’Digital-3D’’ ‘’Trabalho realizado no âmbito de Aplicações Informáticas B’’ Trabalho realizado por: Diogo Matheus Félix Alves nº11 12º2.
Curso Básico de Android
Soluções de Arquitetura para o MultiBatt Parte 0: Idéias gerais e problemas encontrados Parte I: Entidades e colaborações Parte II: Diagrama de relacionamento.
Unity3D: Partículas. Unity3D Objetos especiais para efeitos Objetos resumidos = propriedades diferentes Renderização diferente Centenas / milhares de.
Unity3D: Organização de Projetos
Unity 3D: Câmeras.
Aula 13 - Triggers. Triggers no SGBD Postgres  Os Triggers (Gatilhos) são funções preparadas para serem disparadas no caso de alguma alteração ocorrer.
Unity 3D Classe GUI: Menus e Interfaces. Unity 3D Classe GUI todos recursos para interfaces de tela (de forma facilitada): Box (caixas de menu) Menus.
Unity 3D Animações – Parte I
Recursividade, Entrada pelo teclado e Funções com retorno Dilvan Moreira.
Unity 3D Inteligência Artificial
Transcrição da apresentação:

Unity 3D Character Controller e Triggers

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