Wpis z mikrobloga

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ł ?
  • 9
@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
via Wykop Mobilny (Android)
  • 0
@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