Os materiais didáticos aqui disponibilizados estão licenciados através de Creative Commons Atribuição-SemDerivações-SemDerivados CC BY-NC-ND. Você possui a permissão para visualizar e compartilhar, desde que atribua os créditos do autor. Não poderá alterá-los e nem utilizá-los para fins comerciais.
Atribuição-SemDerivações-SemDerivados
CC BY-NC-ND
Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula
Agora que temos os valores da entrada do usuário, precisamos apenas de mais um passo! Vamos empurrar o nosso amigo robô para que ele se mova por aí! Para fazer isso, adicionaremos uma força, na direção em que o robô deve se mover, diretamente ao corpo rígido. Para que essa força seja adicionada, utilizaremos um Vector2. Esse tipo representa um vetor de duas posições, X e Y, ideal para representar coordenadas. Veremos objetos desse tipo muitas vezes ao longo de nossas aulas, já que estamos trabalhando em 2D e estamos sempre lidando com objetos que necessitam ter os seus valores em eixos alterados. Vamos então criar o nosso vetor de movimento e adicioná-lo como força ao nosso robô, como visto na Listagem 4!
using System.Collections;
using System.Collections.Generic;
using UnityEngine;
public class PlayerController : MonoBehaviour {
private Rigidbody2D rigidBody;
// Use this for initialization
void Start () {
rigidBody = GetComponent<Rigidbody2D> ();
}
//Chamado em um intervalo fixo, independente do FrameRate
void FixedUpdate()
{
float moverV = Input.GetAxis ("Vertical");
float moverH = Input.GetAxis ("Horizontal");
Vector2 movimento = new Vector2 (moverH, moverV);
rigidBody.AddForce (movimento);
}
}
E pronto! Com isso, finalmente o nosso robô está pronto para começar a se mover de acordo com o Input do usuário! Confere o teu script, vê se tá tudo certo, olha se o RigidBody 2D tá adicionado corretamente, verifica se a gravidade está em 0 e aperta o play!
ESTÁ VIVOOOO!!! Ele se move!! \o/
Mas está bem lento, né?! Beeeem. Leeeento.
Versão 5.3 - Todos os Direitos reservados