Transformare - unghiul și poziția obiectului

Ajutați-mă să înțeleg comenzile asociate cu Transform. sau mai degrabă în manipularea obiectului în ceea ce privește poziția și unghiul. Și se pare că sunt confuz
În cazul în care poziția este mai mult sau mai puțin limpede, atunci cu colțurile, în general, terci de cereale (în capul meu).






Aplic totul la kosm.korblyu.

Deschid manualul, caut tot ceea ce este conectat cu Transform, aflu:
Variabile și funcții.
Cuvintele lui, l-am chemat totul pentru ei înșiși așa spun ei, în variabile pot înscrie poziția obiectului, și în funcție - doar viteza ..
Am încercat să folosesc amândouă. dar a existat o confuzie, adică am fost pur și simplu confuz. acest lucru nu este punctul.
Am decis să utilizeze strict variabile (în cazul în care nu este corect într-adevăr mă.) Până când cel puțin nu va înțelege deloc că, dacă, bine, totul să fie progresivă.

1. "poziție sau localPosition" (dacă obiectul nu este un copil, este același?)

2. "eulerAngles sau localEulerAngles" și "rotation or localRotation". În ele nici nu înțeleg nimic. Care este diferența pentru început? Desigur, am învățat să schimbe unghiul: „transform.localRotation = Quaternion.Euler ();“, dar într-adevăr doresc să înțeleagă ce fac.
Nu spun asta după "Quaternion". poți scrie diavolul știe ce. Și scriu de fapt (pentru a schimba unghiul, ca o alternativă la metoda mea) În acest lucru, de asemenea, vreau să înțeleg.

Pot să vă întreb doar despre modalitățile de schimbare a unghiului și despre diferențele dintre ele (în metode).

poziția - poziția obiectului (x, y, z) în coordonatele globale, adică originea coordonatelor în scenă
localPosition - poziția obiectului (x, y, z) în coordonatele locale, adică cu privire la părintele său


eulerAngles - unghiurile de rotație ale obiectului sunt relativ la axe (x, y, z). și anume în componenta x este setat cât de multe grade de obiect este rotit în jurul axei X. Y în jurul axei Y a, respectiv bine, în jurul axei Z Z. Și acest lucru în sistemul global de coordonate







localEulerAngles - unghiuri de rotație precum și în ceea ce privește Unghiurile lui Euler sale, dar parent'a.
să presupunem că avem o astfel de ierarhie:

dacă presupunem GameObjectParent = Unghiurile lui Euler (45,0,0) - atunci este rotit cu 45 de grade în jurul axei X (la nivel mondial)
GameObjectChild localEulerAngles = (45,0,0) - acest obiect este rotit cu 45 de grade în jurul X (GameObjectParnet relativă) axa, ci în coordonate globale (Unghiurile lui Euler) este deja egal cu (90,0,0), adică rotit la 90 de grade față de axa X (strămoș de 45 de grade + 45 de grade față de strămoș)

Golandez a scris (a): Arată-te în Debug.Log doi parametri și vezi religia nu permite?


Trebuie să clarific, deoarece concluziile mele personale nu corespund întotdeauna realității. Am scris, ar trebui să știu sigur.

Syberex a scris (a): Prin stabilirea unei noi valori (poziție sau de rotație), această valoare înlocuiește pur și simplu pe cel vechi. Obiectul se deplasează spre noul punct dorit din spațiu sau primește o rotație nouă în raport cu fiecare axă.
O metodă Traduceți și Rotire vom continua ca și în cazul în care mișcarea a început mai devreme, nu a cerut-o nouă poziție, iar diferența dintre vechea și noua poziție / rotație.
De exemplu, mașina se deplasează cu o viteză de 10 m / s, este mai ușor să se miște utilizând metoda:

transformare. traduce # 40; Vector3. înainte * 10 * Timp. deltaTime # 41; ;


Și cu ajutorul unei poziții variabile este setată în mod convenabil o nouă poziție exactă (în coordonatele globale), cum ar fi aparatul va reveni la început, după ce sa răsturnat

transformare. pozitie = Vector3. la zero;


Cu rândul său, de asemenea:

transformare. Rotire # 40; Vector3. până * 30 * Timp. deltaTime # 41; ; // rotiți mașina, la 30 de grade / s
transformare. rotație = Quaternion. identitate; // resetați întoarcerea la început

Totul depinde nu de metode și variabile, ci de sarcină și de datele disponibile.
În practică, desigur, va fi mai dificil.

Dar cu RotateAround și LookAt, încă nu mi-am dat seama

Asta am vrut să aud!

Și dacă trebuie să schimb poziția camerei în funcție de parametrii vreunei? acolo mi se pare incomod să folosească Traducerea. Deoarece nu am o viteză cunoscută (această cameră), am parametri actuali (de exemplu, cum ar fi viteza aeronavei). Desigur, aș putea construi dependența distanței aparatului de fotografiat de viteza aeronavei. și chiar a făcut acest lucru și totul a funcționat așa cum ar trebui. dar mi se pare totul. aparatul foto este spânzurat pe un avion.







Articole similare

Trimiteți-le prietenilor: