Wpis z mikrobloga

No to tak:

1. Zjeżdżanie w dół zrobione

2. Przemieszczanie sie po planszy zrobione

3. Obroty dookoła osi prawie zrobione

Teraz trzeba przemyśleć zatrzymywanie sie i warunki na zderzanie. Mogę to zrobić albo systemem kolizji (ale boje sie, ze Unity za późno wyłapie i bedą dziwne skoki pozycji z klatki na klatkę) albo sprawdzając po kolei pozycję wszystkich klocków i porównując (czyli około 600 klocków w najgorszym momencie).

Najfajniej jakby była gdzieś opcja szukania obiektów po ich pozycji, ale jeszcze sie nie natknąłem.

#programowanie #unity #tetris3d
  • 6
@Sn3jku: Wykop świetnie się sprawdza jako gumowa kaczuszka. Nawet jeśli o tym nie wie.

Wpadłem na pomysł, żeby skorzystać z tagów i tagować sobie poszczególne poziomy klocków, a potem wyszukiwać je po tagach. (co by mi skracało sprawdzanie do 64 bądź 128 w większości przypadków).

Ale jak sprawdziłem w internetach, to można wykorzystać Physics.OverlapSphere, które daje nam listę obiektów kolidujących ze sferą.Jeżeli ustawimy dokładną pozycję sfery na klocku i mały promień,
@applicative_functor: Mamy plansze 8x8 o wysokości 10. Więc każdy klocek oprócz swojej pozycji, będzie posiadał tag o nazwie (string, ale to nieważne) odpowiadającej jego aktualnym położeniu na osi y(wysokości). A w Unity jest funkcja find.gameobject.with.tag. Więc zamiast przeszukiwać wszystkie klocki, to będzie uwzględniał tylko te na określonej wysokosci(czyli 64).
Skoro masz dyskretną przestrzeń, to nie lepiej zrobić chamską, trójwymiarową tablicę dla całej przestrzenii? Wtedy masz proste sprawdzenie kolizji w czasie stałym.