Menu
CoddyTech

Três pistas

Lição 1 de 20 do curso Jogo Unity: Pistas no Céu da Coddy.

Neste curso, você vai criar um jogo inteiro, um recurso por aula. Um corredor avança por uma estrada bem no alto. Barreiras, barras e muros vêm em sua direção, moedas se alinham nas pistas, e a estrada fica mais rápida quanto mais tempo você durar.

O projeto já tem quatro scripts: Runner no jogador, Road, GameManager e Coin. A maioria está vazia por enquanto e vai sendo preenchida aula por aula. Um quinto, CameraFit na câmera, já está pronto: ele amplia a visão em uma tela alta de celular para que as três pistas caibam, e você não precisará alterá-lo.

O corredor nunca avança. Ele só se move entre três pistas: esquerda, meio e direita. Mantenha a pista como um número inteiro, -1, 0 ou 1, e calcule onde ela fica no eixo x:

float targetX = lane * laneWidth;

O corredor tem um CharacterController, então ele se move com controller.Move(motion): Move recebe a distância a percorrer neste quadro, não onde terminar. Para chegar a targetX, mova-se pela diferença entre esse valor e a posição atual do corredor:

float x = targetX;
Vector3 move = new Vector3(x - transform.position.x, 0f, 0f);
controller.Move(move);

Mathf.Max(-1, lane - 1) é lane - 1, mas nunca menor que -1, então não há pista além da pista da esquerda.

challenge icon

Desafio

Fácil
  1. Em Runner.Update, quando A ou a seta para a esquerda for pressionada (Input.GetKeyDown), defina lane = Mathf.Max(-1, lane - 1).
  2. Quando D ou a seta para a direita for pressionada, defina lane = Mathf.Min(1, lane + 1).
  3. Em seguida, calcule targetX e mova o corredor até lá com controller.Move, como acima.
  4. Pressione “Jogar” e teste A e D.

Experimente você mesmo

using UnityEngine;

public class Runner : MonoBehaviour
{
    public float laneWidth = 2.5f;

    public int lane;

    private CharacterController controller;

    void Start()
    {
        controller = GetComponent<CharacterController>();
    }

    void Update()
    {
        // mude de faixa aqui
    }
}

Todas as lições de Jogo Unity: Pistas no Céu

Pratique por conta própria: Playground de Unity