
VEKTORER
Definition Vektor
Startpunkt
Slutpunkt
Riktning
Storlek*
* Kan även kallas längd eller magnitud
En vektor har en storlek och en riktning

Representation av en vektor i 2D rymd
(0,0)
(8,6)
y
y
x
a
a = (8, 6)
Representation av en vektor i 3D rymd
En tredje dimension, Z.
z
y
x
a
a = (0, 3, 5)
(0, 0, 0)
En vektor anger alltså en position med en offset till nollpositionen (0, 0, 0)
Unity: transform.position = new Vector3(0, 3, 5);

Magnituden
(0,0)
(8,6)
Magnituden m av vektorn a
y
x
a
a = (8, 6)
Längden eller storleken på vektorn
Beräkna magnitud i Unity
distance = transform.position.magnitude;
Vector3.magnitud eller Vector3.sqrMagnitude
Exempel:
distance = transform.position.sqrMagnitude;
Eller
För av avgöra vilken magnitud som är störst behövs egentligen kvadrotsberäkningen!
Vektor addition

Addition av vektor A + B ger resultantvektorn C.
Exempelvis om ett objekt först rör sig till A och sedan B, så blir slutpositionen samma om den rört sig med vektor C.
Exempelvis:
A = (1,10) och B = (5, 6)
C = (1+5, 10+6) = (6, 16)
Unity
Vektor subtraktion
Subtraktion av vektor A - B ger vektorn C.
Exempel på beräkning med 2D vektor:
A = (1,10) och B = (5, 6)
C = (1-5, 10-6) = (-4, 4)
Unity

Exempel: Avstånd mellan objekt

Avståndet blir vektorn för dit man objektet vill nå - objektets egen position.
Normalvektorer
En vektor har en storlek och riktning
Säg - vi är bara intresserade av riktningen
En normaliserad vektor, enhetsvektor beräknas genom att dividera varje komponent med magnituden.
3
4
5
Dela med 5!
3/5
4/5
5/5
En normaliserad vektor har längden 1
Normalvektorer i Unity
Vector3.Normalize
Exempel:
Vector3 displacementFromTarget = targetTransform.position - transform.position;
Vector3 directionToTarget = displacementFromTarget.normalized;
I spelet vill du bara ha riktningen till objektet, inte storleken på vektorn!

Hastighet som vektor
Hastighet som vektor
Hur långt (m) man färdas i en given riktning per sekund - förändring av position över tid.
Säg att ett objekt färdas 12 m/s i riktningen (3, 4)
60fps ≈ 0.017

Skalärprodukt
Eng Dot product
Skalärprodukten av två vektorer A = (x, y, z) och B = (x, y, z)
A ⋅ B = (Ax * Bx) + (Ay * By) + (Az * Bz)
Om skalärprodukten är 0 så är vektorerna vinkelräta mot varandra.
Skalärprodukt
Eng Dot product
Man kan också beräkna vinkeln mellan två vektorer A och B.
Obs! Magnituden av vektorn
Kryssprodukt
Eng. Crossproduct
Kryssprodukten av två vektorer a = (x, y, z) och b = (x, y, z)
Kryssprodukt
Eng. Crossproduct
Kryssprodukten av två vektorer a = (x, y, z) och b = (x, y, z)

Kryssprodukten ger en ny vektor vars riktning är vinkelrät mot vektorn a och b. Parallelogrammets area ger storleken av a x b
Spelprogrammering i Unity - Vektorer
By Sandra Larsson
Spelprogrammering i Unity - Vektorer
- 339