Fondamentale
per ogni buon programmatore di videogiochi è capire come funzionano i vettori.
Ogni game object nella scena presenta di
default il componente Transform, al suo interno tre diversi oggetti di tipo
Vector3 sono accessibili per poterne definire posizione, dimensione e grandezza
nello spazio.
function Start ()
{
var pos :
Vector3 = Vector3(5,5,5);
pos.x += 15;
var dim :
Vector3 = Vector3(2,2,2);
var rot : Vector3 = Vector3(90,0,0);
//assegno
i valori al mio gameobject
transform.position = pos;
transform.localScale =
dim;
//Passiamo da angoli di Euler a Quaternion
transform.rotation = Quaternion.FromToRotation(rot,
Vector3.up);
}
|
Vector3
è l’oggetto utilizzato per instanziare un nuovo vettore, questi può essere
utilizzato non solo per definire una posizione, ma anche uno spostamento,
contenendo informazioni sulla direzione, verso e intensità del movimento. Lo
stesso discorso si può applicare anche alla rotazione e alla dimensione del
game object, diciamo che in generale un vettore può essere utilizzato per
creare delle semplici trasformazioni su di essi. Nell’esempio vediamo come è
possibile spostare un oggetto della scena in una direzione, ricordandoci di
utilizzare la variabile deltaTime della classe Time, che permette di rendere
uniforme il movimento per ogni diverso tipo di processore.
function Update ()
{
muovi(Vector3.up,
0.5);
}
function muovi(dir
: Vector3, speed : float)
{
//sfrutto solo il verso del vettore
//e lo moltiplico per una mia intensità
dir =
dir.normalized * speed;
transform.position += dir * Time.deltaTime;
}
|
Matematicamente
è possibile calcolare una direzione dati due punti semplicemente effenduandone
la differenza, la direzione di questo vettore è la retta passante per i due
punti, il verso è diretto verso il punto sottratto e l’intensità è
proporzionale alla distranza tra i due punti.
Preso direttamente dalla mia tesi, ragionamento molto base, utile per chi si avvicina per la prima volta a Unity3D. Per approfondimenti guardare questo link.
For english readers just look at this page: http://docs.unity3d.com/Documentation/Manual/DirectionDistanceFromOneObjectToAnother.html
Nessun commento:
Posta un commento