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
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@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
  • Odpowiedz
  • 0
@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).
  • Odpowiedz
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.
  • Odpowiedz