Cursos / Jogos Digitais / Desenvolvimento com Motores de Jogos I / Aula

arrow_back Aula 03 - Movimentação - Scripts e Conceitos

Movimentando o Personagem

Alterando o Script para Empurrar o Robô Mundo a Fora

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!

x
1
using System.Collections;
2
using System.Collections.Generic;
3
using UnityEngine;
4
5
public class PlayerController : MonoBehaviour {
6
7
    private Rigidbody2D rigidBody;
8
9
    // Use this for initialization
10
    void Start () {
11
        rigidBody = GetComponent<Rigidbody2D> ();
12
    }
13
14
    //Chamado em um intervalo fixo, independente do FrameRate
15
    void FixedUpdate()
16
    {
17
        float moverV = Input.GetAxis ("Vertical");
18
        float moverH = Input.GetAxis ("Horizontal");
19
20
        Vector2 movimento = new Vector2 (moverH, moverV);
21
22
        rigidBody.AddForce (movimento);
23
    }
24
}
Listagem 4 - Adicionando a força ao nosso robô para fazê-lo mover na direção do Input do usuário.

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