Unity - B koordináta hány fokra van A koordinátától

Unity - B koordináta hány fokra van A koordinátától
2018-11-30T00:21:31+01:00
2018-11-30T09:52:37+01:00
2022-10-15T21:30:46+02:00
Szabolcs01
Sziasztok!

Egy viszonylag egyszerű (tán nem is programozási) kérdésem lenne, bár amit meg szeretnék valósítani az bonyolultabb, a nagyját viszont már megcsináltam.
Lényeg az, hogy van egy "A" koordináta (ami a kamera), és egy "B" koordináta, ami egy objektum, erre kellene ráközelítenie a kamerának. Mivel a neten talált megoldások elég bonyolultnak tűntek, saját paraszti logikával kiszámoltam (aztán lehet szidni érte ), hogy a két koordináta position X és Z és Y értékét kivontam egymásból amiknek vettem az abszolútértékét majd elosztottam 10-el, így lényegében kaptam 10 olyan pontot, amiből akár felállítható lenne egy egyenes is mely A-ból B pontba vezet. A 9. érték pedig ami éppen a B előtt helyezkedik el, tehát ez jó végpontnak a kamerának. Ez eddig stimmel is, bár már én is meglepődtem, hogy működik.
Ugyanakkor van még mit szépíteni. Szóval a kamera forgatható, és bár ugyan az objektum amire ráközelítünk az nyílván nem a háta mögött van, hanem a képernyőn látszik, ettől függetlenül egyáltalán nem biztos, hogy pont 100%-osan abba az irányba néz. Tehát ha kicsit oldalt van akkor a kamera ugyan tökéletes útvonalon halad, mikor odaér akkor ugyanabba a kameraállásban van, mint az induláskor. (Tehát ugyan előtte van, elé érkezik, de ugyanabban a kamera állásban, azaz ha oldalt volt, most is oldalt lesz a sarokban, mintha nem is arra közelítettünk volna rá..) Jó lenne, ha rögtön abba az irányba is fordulna, amerre az objektum elhelyezkedik.
Ezt egyszerűen úgy oldanám meg, hogy a kamera rotation y értékét módosítom, ami feltételezem egy szimpla szög megadásával lehetséges lenne.

Példa:
Tehát van A koordináta: X=-148 Y=176 Z=-182 (kamera állás)
B koordináta: X=-115 Y=0 Z=-47 (objektum)

Azt kellene kiszámolni, hogy B koordináta hány fokra van A koordinátától.
Jelen esetben ha A koordinátának vagyis a kamerának rotation értéknek 7-et állítok be, az kb. pont abba az irányba néz. Valami ilyesmi eredményt kéne kapni :D
De lehet ezt túl le akartam egyszerűsíteni, mert így belegondolva lehet, hogy ennyi adat nem elég ennek megállapításához? Elvégre azt nem tudjuk ezek alapján, hogy a kamera épp merre néz.. 
Nem tudom de ezen már szétmatekoztam magam, annak is örültem, hogy megtaláltam az előtte lévő koordinátát, ha valaki tud így megoldást, vagy esetleg más megoldást, megköszönöm! :D
Mutasd a teljes hozzászólást!
Arcus tangens a vonatkozó szögfüggvény, de pont grafikai felhasználásra szokott lenni atan2() nevű függvény, aminek megadsz két koordinátát (síkban, és úgy lesz kettő, hogy x2-x1 ill. y2-y1), és megmondja neked a szöget hozzá. Ha a másik -fel-le bólintás- szög is kell (nem kérdezted), akkor Pitagorasz (szóval sqrt((x2-x1)^2+(y2-y1)^2) az egyik koordináta) és z2-z1.
Amúgy tuti, hogy van erre valami "look at" beépített függvény.
Mutasd a teljes hozzászólást!

Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd