Menu
CoddyTech

Plataformas Móveis

Parte da seção Criando jogos de verdade do Journey de Unity da Coddy. Lição 49 de 56.

challenge icon

Desafio

Médio

A plataforma azul deve deslizar para frente e para trás sobre o vão. Mantenha tudo da lição anterior.

Preencha MovingPlatform:

  • Dois campos definidos pelo Inspector, distance (3) e speed (1.5), e um public Vector3 delta.
  • Ela desliza do ponto inicial até distance unidades ao longo de +x a speed unidades por segundo, depois volta ao início, e assim por diante para sempre.
  • A cada quadro, delta indica quanto ela se moveu naquele quadro: sua posição depois do movimento menos sua posição antes.

Um CharacterController não é carregado pelo que está sob seus pés: em uma plataforma móvel, ele permanece onde está, e a plataforma desliza para longe sob ele. Mover seu transform.position também não funciona: a próxima chamada a Move do controlador começa de onde a física o viu pela última vez e desfaz a alteração. Faça Player acompanhar a plataforma:

  • Adicione OnControllerColliderHit. Quando a normal do impacto aponta para cima (hit.normal.y acima de 0.5: o jogador está sobre ela) e o objeto tem um MovingPlatform, guarde essa plataforma em um campo.
  • Em Update, adicione o delta dessa plataforma ao movimento passado para controller.Move e, em seguida, esqueça a plataforma (defina o campo como null). A chamada a Move a encontra novamente enquanto o jogador estiver sobre ela.

Pressione Play, pule para a plataforma e acompanhe-a, depois Check.

Experimente você mesmo

using UnityEngine;

public class MovingPlatform : MonoBehaviour
{
    // Uma lição posterior completa isto: uma plataforma que desliza de um lado para o outro.
}

Todas as lições de Criando jogos de verdade