Nessun risultato. Prova con un altro termine.
Guide
Notizie
Software
Tutorial
  • Lezione 24 di 31
  • livello principiante
Indice lezioni

Le diverse tipologie di Rigidbody

Esistono tanti tipi diversi del component Rigidbody, ognuno dei quali può assolvere una diversa funzione all’interno del nostro platform.
Esistono tanti tipi diversi del component Rigidbody, ognuno dei quali può assolvere una diversa funzione all’interno del nostro platform.
Link copiato negli appunti

Abbiamo applicato Rigidbody 2D a diversi nostri oggetti, in modo tale da renderli sensibili all’effetto della fisica all’interno della scena. Ora, ci soffermeremo sulle varie tipologie di Body Type peculiari di Rigidbody 2D; ognuna di queste opzioni andrà a influire direttamente sul Collider che assegneremo al nostro GameObject, determinando il tipo di interazione e la modalità di comportamento per quanto concerne posizione e rotazione dell’oggetto.

Il Body Type Dynamic

Figura 1. (click per ingrandire)


Il primo tipo di Body che andiamo ad affrontare è Dynamic. Come suggerisce anche il nome, questo Body si comporta in maniera dinamica durante la simulazione della fisica, ed è quindi influenzato tanto dalla gravità che dalle diverse forze. Nel nostro caso specifico abbiamo un ulteriore livello di profondità, dal momento che la fisica del personaggio viene gestita non soltanto dal Rigidbody 2D, ma anche dall’estensione del salto attuata via codice, che determina l’altezza del salto e la gravità. Tuttavia, Rigidbody 2D contiene nativamente dei parametri interessanti che applica all’oggetto interessato, come il valore Linear Drag.

Con Drag si intende la proprietà di un oggetto che rallenta, in seguito all’attrito esercitato dall’aria o dall’acqua che lo circonda. Se tale attrito influenza la posizione, parleremo di Linear, se invece riguarda la rotazione parleremo di Angular; nel caso del nostro platform, dunque, ci sarà maggiormente utile Linear. Aumentando il valore di Linear Drag, lo spostamento del GameObject, causato per esempio da una collisione, si interromperà più velocemente rispetto al normale. Naturalmente questo ha delle precise ricadute sul fronte del design: per esempio, impostando una Linear Drag più bassa ci vorrà più tempo per riprendersi dopo che il nostro nemico ci ha colpito con un proiettile in grado di influenzare la fisica.

Il Body Type Kinematic

Figura 2. (click per ingrandire)


Possiamo anche decidere di impostare un Body di tipologia Kinematic. Le differenze non sono immediate, dal momento che si nascondono sotto la “scocca” del motore grafico. In termini di performance, infatti, un Body di tipo Kinematic incide in maniera molto più leggera sulla potenza di calcolo rispetto a un Body di tipo Dynamic. Questo perché il Kinematic si muove solo su diretto input da parte del giocatore. D’altronde, senza estendere le sue funzionalità tramite codice, il Body Type Kinematic non permette di incidere sulla reazione del personaggio alla fisica, per cui non potremo impostare il Drag o la gravità.

Il Body Type Static

L’ultima tipologia di Body è invece Static che, come si può indovinare dal nome, non produce variazioni rispetto alla sua posizione in base a uno stimolo esterno come può essere la gravità. In altre parole, pur avendo il Rigidbody assegnato, con questo Body Type il GameObject non sarà soggetto alla fisica. Questa caratteristica gli permette inoltre di essere leggerissimo dal punto di vista delle performance, rendendo il suo uso praticamente indispensabile nel platform che stiamo andando a creare. Nell’esempio di un platform, il Body Type Static può essere utile per creare le piattaforme, gli ostacoli, o il classico cubo che Mario colpisce con il pugno, che dovranno essere irremovibili e soprattutto non cadere giù (a meno che non vogliamo specificamente che questo avvenga). Creiamo quindi due blocchi per osservare in azione questo tipo di comportamento.

Figura 3. (click per ingrandire)


Nell’esempio che possiamo vedere, il nostro personaggio riesce a saltare sul blocco, che si mantiene fermo in aria nonostante abbia assegnato a sé un Rigidbody, che teoricamente dovrebbe permettere all’oggetto di rispondere alla fisica. Ma poiché abbiamo definito che si tratta di un Body Type di tipo Static, l’oggetto rimane fermo a mezz’aria. Nella creazione di un platform questa funzione sarà utilissima, dal momento che ci permetterà di creare tutta una serie di elementi che possiamo posizionare a piacimento sul livello senza preoccuparci che la gravità li faccia cadere, come per esempio i blocchi o la classica monetina collezionabile da raccogliere.

Non sottovalutiamo l’importanza di queste impostazioni, dal momento che sapere quanto un Body Type influisce sul peso del gioco è importante per garantire la massima ottimizzazione, la cui importanza sarà evidente quando cominceremo ad aggiungere tanti altri elementi al nostro platform. Il lavoro di un game developer, infatti, non finisce quando introduce degli elementi all’interno del mondo di gioco, ma deve assicurarsi che tutti questi abbiano il giusto peso e non affatichino le macchine su cui girano con una non necessaria quantità di calcoli da eseguire.

Ti consigliamo anche