Aula3 input

361 visualizações

Publicada em

Uso de metodos de entrada no unity3d

Publicada em: Educação
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
361
No SlideShare
0
A partir de incorporações
0
Número de incorporações
46
Ações
Compartilhamentos
0
Downloads
17
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Aula3 input

  1. 1. Projetos RAD : Unity 3D Scripts Parte I Augusto Bülow
  2. 2. Unity • Regra PLAY: – Edição durante Play mode é temporária (perdida quando desligamos play) – Intenção: • Testar novos parâmetros durante gameplay – Ganho tempo, resultados experimentados diretamente • EX: mudar velocidades player
  3. 3. Unity : Script • Scripts : – Controle do jogo (interatividade) – Ações game baseadas em tempo / local – Ações game baseadas em intenção : Input • Input: – Avaliar teclas e controles (mouse e joy) – Executar ações necessárias
  4. 4. Unity : Script • Criar um Script: – Assets -> Create -> JavaScript – Renomear Script (organização): Move1 • Duplo click para edição (UniSciTE : Editor scripts)
  5. 5. Unity : Script • Scripts iniciam com função Update function Update() { } • Update() – vai rodar função (o que estiver dentro) a cada ciclo de jogo - a cada tela renderizada • Várias funções nomes próprios, auto executadas com respectivos eventos, EX: – Awake(): quando executado a primeira vez – OnCollisionEnter(): quando colide – Etc...
  6. 6. Unity : Script • Movimento básico de objeto = alterar propriedades transform do objeto, Position X, Y, Z • Perceber intenção = Input • Gerar o movimento baseado no Input
  7. 7. Unity : Script • Captar Input Básico: – Input.GetAxis("Horizontal“) – Input.GetAxis(“Vertical”) • Recebe (auto) teclas WASD, Setas (cursores) e Joysticks (Joypad) • Valores de Retorno: -1.. 0 ..1 • 0 = sem move • Joystick = valores intermediários / max • Teclas = valor Maximo direto (1, 0 ou -1)
  8. 8. Unity : Script • Codificando: function Update () { //CAPTURA INPUT BASICO var forca_horizontal = Input.GetAxis("Horizontal"); var forca_vertical = Input.GetAxis("Vertical"); //MOVE COM TRANSLATE = movimento traduzido transform.Translate(forca_horizontal, 0, forca_vertical); }
  9. 9. Unity : Script • transform.Translate • Movimento traduzido = pela orientação do objeto (ângulo para onde aponta) • 3 parametros: X, Y, Z • Forma direta = altera o objeto a qual o script está atachado • Atachar Script = drag-drop sobre objeto
  10. 10. Unity : Script • Movimento provavelmente rápido • Necessidade de definir velocidades adequadas • Necessidade de perceber o Frame Rate – Rodando a 60 FPS ( 60 updates por segundo) – Rodando a 200 FPS ( 200 por segundo) = Resultados muito diferentes pelo FPS • EX: adicionar um grau a rotação, sem controle de FPS rotaria de acordo com o número de updates
  11. 11. Unity : Script • Correção de valores pelo FPS “ Time.deltaTime “ • Geral: – multiplicamos valores pelo deltaTime = garantia de adaptação a diferentes FRAME RATES • Onde usar: – Movimentos, rotações, timer e cálculos em geral... • Onde NÃO Usar: – Cálculos fixos, estatísticas: • número de tiros, pontos...
  12. 12. Unity : Script • Adaptando nosso Script Básico de movimento • Capturamos / Percebemos o Input • Multiplicamos o Input – pela velocidade (max. que queremos) – pelo tempo (Time.deltaTime) • Necessidade para adaptação a FRAME RATE
  13. 13. Unity : Script function Update () { //CAPTURA INPUT BASICO var forca_horizontal = Input.GetAxis("Horizontal"); var forca_vertical = Input.GetAxis("Vertical"); //CRIAMOS VAR = VELOCIADE DO MOVIMENTO var velocidade = 10; //MULTIPLICAMOS INPUT POR VELOCIDAE E TEMPO forca_horizontal *= velocidade * Time.deltaTime; forca_vertical *= velocidade * Time.deltaTime; //PASSA COMO TRANSLATE = movimento traduzido transform.Translate(forca_horizontal, 0, forca_vertical); }
  14. 14. Unity : Script • Variáveis Exposed / Não • Exposed: – Colocadas fora de funções (início do Script) – Podem ser acessadas / alteradas pelo Inspector //fora de funções = var exposed var velocidade = 10; function Update () { ....
  15. 15. Unity : Script • Inputs adicionais: Input.GetButtonDown("Jump") Input.GetButtonDown(“Fire1") • Retorno: 1 = pressionado • Ex: fire1, leva objeto para ponto da cena if (Input.GetButtonDown("Fire1")) { transform.position.x = 0; transform.position.y = 0; transform.position.z = 0; }
  16. 16. Unity : Script • Vector3(X, Y, Z) – Vetor de 3 posições – Muito utilizado, passagem de três parâmetros diretamente if (Input.GetButtonDown("Fire1")) { //transform.position.x = 0; //transform.position.y = 0; //transform.position.z = 0; //MESMO RESULTADO = única linha transform.position = Vector3(0,0,0); }
  17. 17. Unity : Script • Input = Teclas especificas Input.GetKey(“x”); • Ex. Teclas O e P modificam rotação Y básica do objeto if (Input.GetKey("o")) { transform.rotation.y -= 1 * Time.deltaTime; } if (Input.GetKey("p")) { transform.rotation.y += 1 * Time.deltaTime; }
  18. 18. Unity : Script • Controle de velocidades, fatores = Utilizar Variáveis • Expor Variáveis = facilidade • Testar – Modificar a rotação, usando velocidade por variável – Expor a variável (permite alterar pelo inspector)

×