2015-08-11 15 views
7

Jestem nowy w Unity i zdałem sobie sprawę, że trudno jest grać w rozdzielczości 2d na jedności bez płatnych 3 wtyczek dostępnych w Sklepie z aktywami.Stwórz grę 2D Wewnątrz Skaler na płótnie

Zrobiłem kilka testów i jestem w stanie zrobić Obsługa wielu rozdzielczości w ten sposób:

1- umieścić wszystko z interfejsu użytkownika (przyciski itp) wewnątrz obiektu Canvas w tryb renderingu przestrzeń ekranu - Nakładka z Rozdzielczość odniesienia 16: 9 i stała szerokość.

2 - Umieść pozostałe obiekty gry wewnątrz obiektu gry o nazwie GameManager za pomocą komponentu Canvas Scaler w obszarze ekranu Render Mode - Aparat z rozdzielczością odniesienia 16: 9, stałą szerokością i dołączoną kamerą główną. Następnie wszystkie obiekty gry, takie jak odtwarzacz, platformy itp. Wewnątrz GameManagera, muszą mieć na przykład składnik RectTransform, komponent CanvasRenderer i komponent obrazu.

Czy mogę kontynuować rozwijanie gry w ten sposób, czy może to niewłaściwy sposób na robienie rzeczy?

Pozdrowienia

+0

Płótno jest przeznaczone dla komponentów GUI i nie służy do tworzenia pełnej wersji gry. Jednak zmiana rozdzielczości gry powinna być dobra, jestem pewien, że możesz ustawić okienko ekranu na 800 na 600, może mam kodowanie leżące wokół, ale będę musiał sprawdzić później dla ciebie – Canvas

+0

Dziękuję za pomoc . Czekam na Twój kod, aby zmienić rozdzielczość gry. – mistic

+0

Wygląda na to, że kod, który tu położę, pomógłby ci tutaj :(kod, który mam, jest zasadniczo taki sam, bez względu na to, nawet jeśli przejdą one w tryb pełnoekranowy, jednak znalazłem ten http: //gamedev.stackexchange. com/questions/79546/how-do-you-handle-aspect-ratio-differences-with-unity-2d – Canvas

Odpowiedz

2

Nie polecam korzystania Canvas Scaler za opracowanie kompletnej gry. Zamierzonym celem skalera płótna było stworzenie menu i powinieneś używać go do tworzenia tylko menu.

Gry 2D utworzone bez skalowania płótna nie stwarzają większych problemów (głównie nie powodują problemów) w wielu rozdzielczościach.

Twój krok 1 jest prawidłowy, ale w przypadku kroku 2 nie jest konieczne dołączanie komponentu skalowania płótna.

Pamiętaj, aby oznaczyć swoją scenę jako 2D (nie jest to konieczne), a aparat fotograficzny do ortografii (konieczny) podczas tworzenia gier 2D.

+0

Dzięki za pomoc.Jakie są główne problemy, które może spowodować użycie skalera płótna do opracowania kompletnej gry? – mistic

+0

Opracowanie małej gry z niezbyt wysokimi parametrami: skalowanie płótna nie spowoduje żadnych problemów, ale w pewnych sytuacjach, takich jak chcesz, gracz może przewijać mapę, przeciągając palcem po ekranie. może to być trochę trudne (nie niemożliwe), ponieważ skalery płótna ograniczają pewne obiekty, które można przesuwać w czasie wykonywania. Mówiąc "nie jest niemożliwe", mam na myśli to, że jedność udostępniła je, aby można było dziedziczyć po klasach UI i rozszerzać je tak, jak chcesz. –

+0

Dzięki za odpowiedź. Mówisz, że mogę mieć problemy z wydajnością tego rozwiązania? – mistic

5

Nie zapomnij też o GUI, Graphics. Jest to powszechne błędne przekonanie, że jest ono amortyzowane i powolne. Nie, nie jest. Pomoce GameObject dla GUI były złe i są amortyzowane, ale API do wstawiania OnGUI działa świetnie, gdy wszystko, czego potrzebujesz, to narysować teksturę lub jakiś tekst na ekranie. Nazywa się je starszymi, ale nie ma planów ich usunięcia, tak jak cały Unity UI is made out of it anyway.

Zrobiłem kilka gier właśnie na te, używając Unity jako bardzo przesadzonego wieloplatformowego API dla draw quad.

Istnieje również GL, jeśli chcesz czegoś więcej.

Po prostu pamiętaj - nie będzie wbudowanej fizyki, efektów cząsteczkowych, szukania ścieżek ani niczego - tylko prosty sposób rysowania rzeczy na ekranie. Będziesz mieć całkowitą kontrolę nad tym, co zostanie narysowane - i to jest zarówno dobre, jak i złe, w zależności od tego, co chcesz zrobić.

+0

Jeśli chodzi o wielokrotne odnawianie - jest to jedna z rzeczy, które trzeba będzie wdrożyć - tak jak wszyscy w starych strukturach takich jak SDL, Allegro czy te liczne silniki flash. –