SlideShare a Scribd company logo
1 of 10
Projetos RAD : Unity 3D 
Velocidade, aceleração e fricção 
Augusto Bülow
Unity 
• Código básico de movimento (atual) 
– Pressiona tecla = move 
• Movimentos avançados 
– Velocidade com maior controle 
– Aceleração 
– Fricção 
– Mantém velocidade ( + transformações) 
= Criar variáveis para controle destes aspectos
Unity 
• Variáveis básicas: 
var aceleracao = 0.5; 
var friccao = 0.2; 
var velocidade_maxima = 3.0; 
var velocidade_atual = 0.0; 
• Utilizar Float (declarar valor com vírgula) 
– Habilitar transformações leves / decimais 
• Estamos criando física (manualmente) 
– RigidBody = esquema automático 
– Pode ser incorporado física manual (junto)
Unity 
function Update () { 
//Input - acelera velocidade atual 
if (Input.GetKey("w") || Input.GetKey(KeyCode.UpArrow)) 
{ velocidade_atual += aceleracao * Time.deltaTime; 
} 
//limita velocidade maxima 
if (velocidade_atual > velocidade_maxima) { 
velocidade_atual = velocidade_maxima; 
} 
//Mover sempre com a velocidade 
var controller = GetComponent(CharacterController); 
controller.Move(Vector3(0, 0, velocidade_atual)); 
}
Unity 
• Necessidade de Fricção (manual) 
– Fricção = atrito, diminui a velocidade do corpo 
• Fricção = leva a inércia 
– Restrição a velocidade 0 ( repouso) 
– Evitar entrar em velocidade inversa 
//friccao manual - leva a repouso 
if (velocidade_atual > 0) { 
velocidade_atual -= friccao * Time.deltaTime; 
//maximo - levar a repouso - evita move contrario if 
(velocidade_atual < 0) { 
velocidade_atual = 0; 
} 
}
Unity 
• Mudança básica de fricção, aceleração 
transformamos o movimento do player em um 
caminhão de toneladas, ou em um carro de 
fórmula 1 
• Atenção: aceleração sempre maior que fricção: 
– Senão não há movimento 
• Testar valores exemplo: 
– Aceleração 1.5 e Fricção 0.1
Unity 
• Inserindo controle básico de rotação pelo 
mouse 
• transform.Rotate(Vector3); 
var rotacao = 0.0; 
var forca_rotacao = 2; 
... 
//Inserindo rotacao basica com mouse 
rotacao = Input.GetAxis("Mouse X") * forca_rotacao; 
transform.Rotate(Vector3(0, rotacao, 0));
Unity 
• Necessidade de transformar a forca de 
movimento (velocidade) em relação a 
orientação atual 
• transform.TransformDirection() 
• Necessário Vector3 
– para transformação 
– para resultado
Unity 
var velocidade_vetor : Vector3; 
.... 
//uso de vetor - transforma em vetor 
velocidade_vetor = 
transform.TransformDirection(Vector3(0, 0, velocidade_atual)); 
//Move sempre com a velocidade 
var controller = GetComponent(CharacterController); 
//controller.Move(Vector3(0, 0, velocidade_atual)); 
controller.Move(velocidade_vetor);
Unity 
• Controlando velocidade pode-se, por exemplo, 
transformá-la no momento de uma colisão 
• Exemplos: 
– Colidiu = perde parte da velocidade 
– Colidiu = inverte a velocidade 
• Fazer testes básicos colisão / velocidade 
• Trabalhando a Física manualmente 
– física realística = RigidBody

More Related Content

More from Marcos Batista (16)

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 disparos
Aula disparosAula disparos
Aula disparos
 
Aula disparos
Aula disparosAula disparos
Aula disparos
 
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
 
Aula3 input
Aula3   inputAula3   input
Aula3 input
 
Aula2 intro2
Aula2   intro2Aula2   intro2
Aula2 intro2
 
Aula1 intro
Aula1  introAula1  intro
Aula1 intro
 

Recently uploaded

Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
AntonioVieira539017
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
marlene54545
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
PatriciaCaetano18
 
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
TailsonSantos1
 

Recently uploaded (20)

P P P 2024 - *CIEJA Santana / Tucuruvi*
P P P 2024  - *CIEJA Santana / Tucuruvi*P P P 2024  - *CIEJA Santana / Tucuruvi*
P P P 2024 - *CIEJA Santana / Tucuruvi*
 
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptxResponde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
Responde ou passa na HISTÓRIA - REVOLUÇÃO INDUSTRIAL - 8º ANO.pptx
 
Produção de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptxProdução de Texto - 5º ano - CRÔNICA.pptx
Produção de Texto - 5º ano - CRÔNICA.pptx
 
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
 
19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf19- Pedagogia (60 mapas mentais) - Amostra.pdf
19- Pedagogia (60 mapas mentais) - Amostra.pdf
 
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
A Revolução Francesa. Liberdade, Igualdade e Fraternidade são os direitos que...
 
Seminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptxSeminário Biologia e desenvolvimento da matrinxa.pptx
Seminário Biologia e desenvolvimento da matrinxa.pptx
 
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVAEDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
EDUCAÇÃO ESPECIAL NA PERSPECTIVA INCLUSIVA
 
Sistema de Bibliotecas UCS - Cantos do fim do século
Sistema de Bibliotecas UCS  - Cantos do fim do séculoSistema de Bibliotecas UCS  - Cantos do fim do século
Sistema de Bibliotecas UCS - Cantos do fim do século
 
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdfRecomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
Recomposiçao em matematica 1 ano 2024 - ESTUDANTE 1ª série.pdf
 
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdfApresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
Apresentação ISBET Jovem Aprendiz e Estágio 2023.pdf
 
M0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptxM0 Atendimento – Definição, Importância .pptx
M0 Atendimento – Definição, Importância .pptx
 
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
A EDUCAÇÃO FÍSICA NO NOVO ENSINO MÉDIO: IMPLICAÇÕES E TENDÊNCIAS PROMOVIDAS P...
 
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdfPROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
PROJETO DE EXTENSÃO I - SERVIÇOS JURÍDICOS, CARTORÁRIOS E NOTARIAIS.pdf
 
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
 
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdfPROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
PROJETO DE EXTENSÃO I - TERAPIAS INTEGRATIVAS E COMPLEMENTARES.pdf
 
Texto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.pptTexto dramático com Estrutura e exemplos.ppt
Texto dramático com Estrutura e exemplos.ppt
 
Educação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptxEducação Financeira - Cartão de crédito665933.pptx
Educação Financeira - Cartão de crédito665933.pptx
 
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
 
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
 

Aula7 velocidade

  • 1. Projetos RAD : Unity 3D Velocidade, aceleração e fricção Augusto Bülow
  • 2. Unity • Código básico de movimento (atual) – Pressiona tecla = move • Movimentos avançados – Velocidade com maior controle – Aceleração – Fricção – Mantém velocidade ( + transformações) = Criar variáveis para controle destes aspectos
  • 3. Unity • Variáveis básicas: var aceleracao = 0.5; var friccao = 0.2; var velocidade_maxima = 3.0; var velocidade_atual = 0.0; • Utilizar Float (declarar valor com vírgula) – Habilitar transformações leves / decimais • Estamos criando física (manualmente) – RigidBody = esquema automático – Pode ser incorporado física manual (junto)
  • 4. Unity function Update () { //Input - acelera velocidade atual if (Input.GetKey("w") || Input.GetKey(KeyCode.UpArrow)) { velocidade_atual += aceleracao * Time.deltaTime; } //limita velocidade maxima if (velocidade_atual > velocidade_maxima) { velocidade_atual = velocidade_maxima; } //Mover sempre com a velocidade var controller = GetComponent(CharacterController); controller.Move(Vector3(0, 0, velocidade_atual)); }
  • 5. Unity • Necessidade de Fricção (manual) – Fricção = atrito, diminui a velocidade do corpo • Fricção = leva a inércia – Restrição a velocidade 0 ( repouso) – Evitar entrar em velocidade inversa //friccao manual - leva a repouso if (velocidade_atual > 0) { velocidade_atual -= friccao * Time.deltaTime; //maximo - levar a repouso - evita move contrario if (velocidade_atual < 0) { velocidade_atual = 0; } }
  • 6. Unity • Mudança básica de fricção, aceleração transformamos o movimento do player em um caminhão de toneladas, ou em um carro de fórmula 1 • Atenção: aceleração sempre maior que fricção: – Senão não há movimento • Testar valores exemplo: – Aceleração 1.5 e Fricção 0.1
  • 7. Unity • Inserindo controle básico de rotação pelo mouse • transform.Rotate(Vector3); var rotacao = 0.0; var forca_rotacao = 2; ... //Inserindo rotacao basica com mouse rotacao = Input.GetAxis("Mouse X") * forca_rotacao; transform.Rotate(Vector3(0, rotacao, 0));
  • 8. Unity • Necessidade de transformar a forca de movimento (velocidade) em relação a orientação atual • transform.TransformDirection() • Necessário Vector3 – para transformação – para resultado
  • 9. Unity var velocidade_vetor : Vector3; .... //uso de vetor - transforma em vetor velocidade_vetor = transform.TransformDirection(Vector3(0, 0, velocidade_atual)); //Move sempre com a velocidade var controller = GetComponent(CharacterController); //controller.Move(Vector3(0, 0, velocidade_atual)); controller.Move(velocidade_vetor);
  • 10. Unity • Controlando velocidade pode-se, por exemplo, transformá-la no momento de uma colisão • Exemplos: – Colidiu = perde parte da velocidade – Colidiu = inverte a velocidade • Fazer testes básicos colisão / velocidade • Trabalhando a Física manualmente – física realística = RigidBody