Menu
CoddyTech

Piattaforme mobili

Fa parte della sezione Creare veri giochi del percorso Unity di Coddy. Lezione 49 di 56.

challenge icon

Sfida

Medio

La piattaforma blu dovrebbe scorrere avanti e indietro sopra il vuoto. Mantieni tutto ciò che hai realizzato nella lezione precedente.

Completa MovingPlatform:

  • Due campi impostati dall’Inspector, distance (3) e speed (1.5), e un public Vector3 delta.
  • Scorre dal punto di partenza per distance unità lungo +x alla velocità di speed unità al secondo, poi torna al punto di partenza, e così via per sempre.
  • A ogni frame, delta indica di quanto si è spostata in quel frame: la sua posizione dopo lo spostamento meno la sua posizione prima.

Un CharacterController non viene trasportato da ciò su cui poggia: su una piattaforma mobile rimane dov’è e la piattaforma scivola via sotto di lui. Nemmeno spostare il suo transform.position funziona: la successiva chiamata a Move del controller parte dal punto in cui la fisica l’ha visto l’ultima volta e annulla la modifica. Fai in modo che Player si sposti insieme alla piattaforma:

  • Aggiungi OnControllerColliderHit. Quando la normale del contatto è rivolta verso l’alto (hit.normal.y maggiore di 0.5: il giocatore ci sta sopra) e l’oggetto ha un MovingPlatform, conserva quella piattaforma in un campo.
  • In Update, aggiungi delta della piattaforma al movimento passato a controller.Move, poi dimentica la piattaforma (imposta il campo a null). La chiamata a Move la individua di nuovo finché il giocatore ci sta sopra.

Premi Play, salta sulla piattaforma e lasciati trasportare, poi premi Check.

Provalo tu

using UnityEngine;

public class MovingPlatform : MonoBehaviour
{
    // Una lezione successiva completerà questa parte: una piattaforma che scorre avanti e indietro.
}

Tutte le lezioni di Creare veri giochi