IT rekvalifikácia. Seniorní programátori zarábajú až 6 000 €/mesiac a rekvalifikácia je prvým krokom. Zisti, ako na to!

Diskusia – 11. diel - Unity (C #) Android: Vylepšenia pohybu nakláňaním

Späť

Upozorňujeme, že diskusie pod našimi online kurzami sú nemoderované a primárne slúžia na získavanie spätnej väzby pre budúce vylepšenie kurzov. Pre študentov našich rekvalifikačných kurzov ponúkame možnosť priameho kontaktu s lektormi a študijným referentom pre osobné konzultácie a podporu v rámci ich štúdia. Toto je exkluzívna služba, ktorá zaisťuje kvalitnú a cielenú pomoc v prípade akýchkoľvek otázok alebo projektov.

Komentáre
Avatar
Josef Nosek
Člen
Avatar
Josef Nosek:17.3.2021 12:11

Ahoj, píšu sem z holého zoufalství. Mám 2D objekt (auto, mravenec) který potřebuji natočit ve směru pohybu. Tedy proceduru typu
private void otocDoSmeruPohybu( Vector2 smerPohybu, Gameobjekt telesoKOtoceni) { }.
Zkusil jsem všechno. Počítal jsem úhel natočení přes goniometrické funkce (Arkus cosinu získaného z rozdílu jednotkového a vektoru posunu), vyblbnul jsem si s převodem Rad na stupně než jsem zjistil že Unity na to má funkci :) a nic. Při použití transform to nefungovalo (Euler, Quat., Rad to není) vyzkoušel jsem rigidbody.rotation, taky to nešlo, Transform.LookAt, Vector3.Rotate­Towards (zase, převod 2d do 3d a zpátky snad rozumím správně; točím kolem Z-tové souřadnice). Nemá smysl sem dávat zdrojáky mých pokusů, je toho hromada. Sledování objektu není problém, ale přijde mi jako pitomost posílat před sebou prázdný objekt jen abych se na něj natočil.
Určitě to jde nějak jednoduše, ale já fakt nevím jak, točím se v kruhu... SOS SOS.. Dík, Pepa

Editované 17.3.2021 12:12
 
Odpovedať
17.3.2021 12:11
Avatar
Jan Kubice
Tvůrce
Avatar
Odpovedá na Josef Nosek
Jan Kubice:23.3.2021 10:21

Ahoj,
omlouvám se, ale dřív na odpověď čas nebyl :-) .
Jestli jsi to ještě nevyřešil tak zkusím pomoct ale abych řekl pravdu tak tu sedím a čtu si to asi po 10. a nevím kde by mohl být problém. Pokud se jedná o objekt ovládaný hráčem tak bych klasicky reagoval na stisknutí klávesnice a dle toho měnil úhly, s tím by snad problém být neměl ale pokud se jedná například o NPC tak v tom případě mi využití jiného objektu nepřijde blbé. Takový objekt se může brát jako waypoint pro to NPC ke kterému musí dojít a to dle mého není nikterak špatně provedené. :-)

 
Odpovedať
23.3.2021 10:21
Avatar
Josef Nosek
Člen
Avatar
Josef Nosek:23.3.2021 11:19

Ahoj,
nevyřešil, zatím jsem to vzdal, dřív než mi hrábne, dělám na další části 8-(.
Jedná se o NPC řízená čistě skriptem ve 2D, během běhu aplikace mění směr pohybu.Po změně směru mám jen Vector2 kterým se NPC pohybuje.
Umím spočítat úhel proti jednotkové soustavě, tedy znám jak vektor pohybu, tak i úhel o který se otočit.
Problém je, že jsem nenašel jak otočit objekt do nějakého směru (vše v 2D, tedy točím kolem 'z'). Transform.rotation, rigidbody.rotation, Transform.LookAt, nic z toho jsem nerozchodil, není to úplně triviální. Třeba převod ze souřednic 2D na Quaternion pak transform.rotation s průmětem do plochy mi nešel, přes fyziku 'rigidbody' to má setrvačnost atd.

Určitě existuje nějaký triviální příkaz typu cosi.rotation(vek­tor2D kam chci otočit) ale ten nemůžu najít, proto jsem zavolal sos.. :D
Díky za čas, Pepa

 
Odpovedať
23.3.2021 11:19
Robíme čo je v našich silách, aby bola tunajšia diskusia čo najkvalitnejšia. Preto do nej tiež môžu prispievať len registrovaní členovia. Pre zapojenie sa do diskusie sa zaloguj. Ak ešte nemáš účet, zaregistruj sa, je to zadarmo.

Zatiaľ nikto nevložil komentár - buď prvý!