halo #unity3d #unity potrzebuję pomocy ! Staram się zrobić prostą gierkę dla syna, nauczyć go pisania literek / cyferek... Mam sobie pewien pliczek SVG, chce wykorzystać go jako możliwy obszar po którym można rysować. Dajmy na to A.
Chce sprawdzić czy narysowana linia jest w obszarze zdefiniowanym przez krzywe w pliku SVG. Inaczej mówiąc czy napisana została literka A nie wyjeżdżając za linię literki A (zewnętrzne jak i wewnętrzne). I mam problem. Ponieważ gdy zrzucę sobie svg do unity oraz na scenę ni jak mogę sprawdzić ... raycast nie łapie (no chyba, że damy box collider... ale wtedy mamy box a nie A)... mesh collider nie bangla ;(
Zrobiłem nawet box collider + wyciąganie coloru pixela z sprita... ale unity zwraca zawsze (0,0,0,0)... Ktoś ma jakiś pomysł ?
@Daredzik: no bo SVG jest opisywane geułami matematycznymi a w renderowane są trójkąty. ze sprita nie wyciagniesz koloru piksela bo tam nie ma pikseli:). Próbkujesz kolor w współrzednych 0-1 textury i jak trafisz pomieszy dwa kolory to dostaniesz jakąś średnią( w zalezności jak masz ustawione filtrowanie)
Albo wyrenderujsz sobie obraz do osobnej textury i bedziesz na niej sprawdzał albo bedziesz musiał przeliczać wspolrzedne ekranu/świata na wpsolrzedne tekstury, co jest skomplikowane
@Daredzik: ruchome obiekty moga mieć tylko collidery typu convex(wypukle i mało szczegółowe). Bardziej szczegółowe collidery muszą być static czyli nie ruszamy nimi. Dopuszczalne jest ich przesuwanie ale słabe wydajnościowo bo wymaga przebudowania struktur hierarchicznych używanych w systemie kolizji i raycastow
@Daredzik: Lepszym podejściem będzie podzielić litery na linie i sprawdzać czy rysowane miejsce nie odstaje od najbliższych linii. W jednym swoim projekcie potrzebowałem takiej mechaniki i do sprawdzenia czy punkt znajduje się w pobliżu linii i w jakiej odległości używałem tej funkcji https://pastebin.com/u2tw36EW
Staram się zrobić prostą gierkę dla syna, nauczyć go pisania literek / cyferek...
Mam sobie pewien pliczek SVG, chce wykorzystać go jako możliwy obszar po którym można rysować. Dajmy na to A.
Chce sprawdzić czy narysowana linia jest w obszarze zdefiniowanym przez krzywe w pliku SVG. Inaczej mówiąc czy napisana została literka A nie wyjeżdżając za linię literki A (zewnętrzne jak i wewnętrzne).
I mam problem. Ponieważ gdy zrzucę sobie svg do unity oraz na scenę ni jak mogę sprawdzić ... raycast nie łapie (no chyba, że damy box collider... ale wtedy mamy box a nie A)... mesh collider nie bangla ;(
Zrobiłem nawet box collider + wyciąganie coloru pixela z sprita... ale unity zwraca zawsze (0,0,0,0)...
Ktoś ma jakiś pomysł ?
ze sprita nie wyciagniesz koloru piksela bo tam nie ma pikseli:). Próbkujesz kolor w współrzednych 0-1 textury i jak trafisz pomieszy dwa kolory to dostaniesz jakąś średnią( w zalezności jak masz ustawione filtrowanie)
Albo wyrenderujsz sobie obraz do osobnej textury i bedziesz na niej sprawdzał albo bedziesz musiał przeliczać wspolrzedne ekranu/świata na wpsolrzedne tekstury, co jest skomplikowane
W jednym swoim projekcie potrzebowałem takiej
mechaniki i do sprawdzenia czy punkt znajduje się w pobliżu linii i w jakiej odległości używałem tej funkcji
https://pastebin.com/u2tw36EW