Dwie kamery i 4:3

Space shooter w rozdziałce 16:9 jest zdecydowanie za szeroki, a te poziome (ze statkiem lecącym od prawej do lewej) mi się nie podobają. Postanowiłem ograniczyć pole gry do starego, dobrego aspektu 4:3. Nie chciałbym także, aby gracz widział po bokach szarą/czarną przestrzeń, jeśli odpali moją grę na współczesnym monitorze. Potrzebuję drugiej kamery do tła…

Druga kamera

Banalna sprawa z tą kamerą do tła, ale to zawsze tak jest, jak już coś w końcu zacznie działać. Warto czasami odpocząć chwilę od projektu, wydajność mocno wzrasta patrząc na ten sam problem po dłuższej przerwie 🙂

Culling Mask to renderowane warstwy. Chwilowo ustawione na 0 + zmieniony podstawowy kolor kamery. Pojawi się tu w przyszłości prawdopodobnie jedna warstwa o nazwie „OuterCameraBackground” (albo coś w tym stylu). No chyba że można ustawić tło obrazkowe we właściwości Background. Wtedy nic tu się nie zmieni.

Depth – kolejność w jakiej rysowane są kamery. Ustawiając 0 tutaj, a 1 na głównej – najpierw rysujemy tło ’16:9′, a potem nakładamy na górę właściwą kamerę z grą. Coś jak z-index w CSSie.

Inne komponenty nie będą nam potrzebne, dlatego odznaczamy ich checkboxy, albo po prostu je usuwamy z tego obiektu.

Kamerę w tle mamy załatwioną, przyszła pora na tę główną. Jako że mam ostatnio mocno ograniczony czas, znalazłem gotowy skrypt w googlu. Niby dodaje on własny pillarbox/letterbox, ale mój z kamery w tle pozostaje widoczny. Dopóki działa, nie będę go dogłębnie analizował. Na mikrooptymalizację przyjdzie czas na końcu (jeśli w ogóle zostanie).

GUI na kamerze głównej

Tu zaczynają się schody.

Bo właściwie to UI gracza równocześnie działa i nie działa.

Animation

Ale żeby dojść do tego momentu trzeba było najpierw zrobić jedną rzecz. Przestawić właściwość Render Mode na Canvasie z Screen Space – Overlay na Camera. Wtedy możemy ustawić żeby UI rysowane było na kamerze głównej.

Jak naprawić problem z interfejsem? Ustawić Plane Distance płótna na 1. Kamera na osi Z ma wartość -10, Canvas też. Zwiększenie dystansu spowoduje przestawienie Z-index płótna na -9 i będzie ono widoczne dla gracza.

Mam nadzieję, że jeszcze w tym tygodniu zrobię bardzo ważną rzecz.

Menu pauzy!