Unityben (3D, C sharp) hogy, lehet megcsinálni a kamera és a mozgás "összehangolt" működését?
A karakter mozgását ezzel ezzekkel a scriptekkel csináltam:
rb.AddForce(0, 1000 * Time.deltaTime, 0, 0,)
Ezt végig csináltam a WASD gombokon. A mozgás működik is.
Ha csinálok hozzá egy külső nézetű kamerát amit tudok mozgatni az egérrel akkor nem abba az irányba mozog ami a kamerából látszódik.
Tehát ha a kamera jól van beállítva és lenyomom a w-t akkor elindul előre de ha a kamerát mondjuk 180 fokkal körbe fordítom és lenyomom a w-t akkor felém indul el logikusan.
Hogy lehet ezt megoldani?
A válaszokat előre is köszönöm!
szóval a karaktert rigidbody.AddForce-al mozgatod az Update alatt
a kamerát külön mozgatod, vagy parentolva van a karakterhez?
most te pontosan mit is szeretnél? amerre fordulva van a kamera arra mozogjon a karakter?
Kamera előre:
Camera.main.transform.forward
Annyit még, hogy a main kamera transformját tárold el mindenképp és ne így kérd le Update alatt, hogy Camera.main, mert ez erőforrásban nem a legjobb megoldás (ezt most nem részletezném).
Tehát felveszel a controllerben 1 plusz propertyt ami a main camera transformját tárolja (vagy te editorban adod meg, vagy Awake/Start alatt lekéred).
Mozgatásnál meg a Forward/Right vectort használod és azt szorzod Speed + DeltaTime-al. Viszont a mozgatást mivel RB-s megérné átrakni FixedUpdate-re sima Update helyett.
Kapcsolódó kérdések:
Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!