Flytta och rotera
Time.deltaTime
Eftersom alla datorer Àr olika snabba sÄ blir det lite konstigt om man har t.ex. en fast förflyttning eller fast rotation per bildruta.
Time.deltaTime Àr en float som innehÄller tiden som gÄtt sedan föregÄende bildruta i sekunder.
Det gör att om man multiplicerar en hastighet med Time.deltaTime sÄ kommer det att bli en stor förflyttning om man har fÄ fps och en mindre förflyttning om man har hög fps.
Om hastigheten ska vara 2 rutor per sekund sÄ kommer objektet alltsÄ att röra sig 2 * 1/30 per bildruta pÄ en dator som har 30fps och 2 * 1/60 per bildruta pÄ en dator som har 60fps.
Position
transform.Translate()
En metod som tar emot en Vector3 och adderar den till den nuvarande positionen - samma sak som att addera sjÀlv alltsÄ, men via en metod.
transform.position
En Vektor3 som motsvarar objektets nuvarande x, y- och z-position i vÀrlden.
OvanstÄende exempel skapar en ny vektor med x-vÀrde 2, y-vÀrde 3.2 och z-vÀrde 0. DÀrefter byts objektets nuvarande position ut mot den nya vektorn.
OvanstÄende exempel skapar först en ny vektor som beskriver hur mycket objektet ska förflyttas, och sedan adderar den vektorn till transform.position sÄ att det nya vÀrdet som transform.position har Àr den nya positionen den ska ha.
Vector3.Lerp()
Lerp stÄr för "Linear interpolation". Förenklat kan man stoppa en "kÀllvektor" och en "mÄlvektor" och fÄ ut en vektor som ligger mellan kÀllan och mÄlet. Man anger ocksÄ en float som mÀter hur lÄngt lÀngsmed rutten frÄn kÀllan till mÄlet som den mellanliggande vektorn rört sig.
Detta brukar anvÀndas för att skapa "mjuka" rörelser och storleksförÀndringar.
Kör man ovanstĂ„ende kod i Update() sĂ„ kommer objektet att flytta sig halva vĂ€gen varje bildruta. Det kommer alltsĂ„ egentligen aldrig att komma framâŠ
Float-vÀrdet behöver vara mellan 0 och 1, för 1 innebÀr "hela vÀgen".
Rotation
Man jobbar sÀllan direkt med Quaternions i Unity; man skapar Ätminstone sÀllan egna. IstÀllet anvÀnder man olika metoder för att generera eller förÀndra quaternions.
transform.Rotate()
Roterar objektet ett givet antal grader i x, y och z-led.
Eller ett visst antal grader runt en given axel
transform.RotateAround()
Snurrar objektet ett givet antal grader runt en punkt och en axel som skÀr denna punkt.
transform.rotation
Om man fĂ„tt fram en quaternion eller vill anvĂ€nda en fĂ€rdig â t.ex. nollrotationen Quaternion.identity â sĂ„ an man Ă€ndra pĂ„ transform.rotation direkt.
transform.LookAt()
AnvĂ€nds frĂ€mst i 3D â roterar objektet sĂ„ att dess interna "forward"-axel pekar mot en specifik position.
Motsvarigheten till LookAt() i 2d
Det finns ett lite "fuskigt" sÀtt att rotera ett objekt i 2d sÄ att det pekar mot ett annat objekt i scenen.
Last updated