Zamieszanie na temat rozmiaru duszka w przestrzeni kosmicznej (jedność)

11

Mam duszka o rozdzielczości 1080x1920. Rozdzielczość widoku gry ustawiłem również na 1080x1920. Myślałem, że duszek (1080x1920) powinien poprawnie pasować w widoku kamery.

rozdzielczość obrazu to 1080x1920

Ale kiedy przeciągam duszka, duszek jest powiększany i znika z widoku z kamery.

widok ekranu, duszek jest poza kamerą

Jakie zmiany muszę zrobić, aby upewnić się, że ten duszek jest w 100% dopasowany do widoku z kamery. Mógłbym zmienić skalę transformacji duszka. To jednak spowoduje problemy, ponieważ mam do czynienia z wieloma innymi duszkami, które powinny być proporcjonalne.

Faizan Khan
źródło
Masz na myśli duszka 3D? Lub duszka 2D interfejsu użytkownika?
TomTsagk
Duszek 2D .....
Faizan Khan

Odpowiedzi:

19

Ma to sens, gdy przypomnisz sobie, że duszki nie są po prostu przycinane piksel po pikselu na ekranie (co sprawiłoby, że koszmarem byłoby uzyskać taki sam wygląd na ekranach o różnych rozdzielczościach, ponieważ wszystkie one przycinałyby twoją sztukę inaczej) , ale raczej są częścią twojego świata 3D w zależnym od urządzenia układzie współrzędnych rozgrywki, którym możesz sterować.

Podobnie jak wszystko inne w tym świecie rozgrywki, część, która kończy się mapowaniem na ekran, zależy od konfiguracji obiektu kamery.

Istnieją więc cztery części, które decydują o tym, jak duży ma być twój duszek:

  1. Rozdzielczości źródło z ikonki.

  2. Ustawienie Liczba pikseli na jednostkę wybrane w inspektorze ustawień importu.

    To ustawia współczynnik konwersji do przekształcania rozmiarów z pikseli w przestrzeni tekstur na jednostki w przestrzeni świata (tj. Przestrzeń, w której odbywają się wszystkie obliczenia z gry i fizyki)

    Wysokość w jednostkach świata = Wysokość źródła w pikselach / pikselach na jednostkę

    Zasadniczo powinieneś wybrać tę liczbę, aby dostosować ją do niektórych istotnych wskaźników rozgrywki w grze. na przykład. jeśli masz siatkę kafelków o odstępie 135 pikseli, wybranie Pixels per Unit = 135 spowoduje, że każda komórka twojej siatki będzie miała dokładnie 1 jednostkę szerokości w układzie współrzędnych gry, dzięki czemu obliczenia będą wygodniejsze.

  3. Rozmiar ortograficzny twojego aparatu.

    (Lub, jeśli używasz kamery perspektywicznej, kombinacji pola widzenia kamery i głębokości od kamery do twojego duszka)

    To określa, ile jednostek twojego świata może zobaczyć Twoja kamera, od środka jej widoku do górnej krawędzi.

    Zajęta część wysokości kamery = wysokość w jednostkach świata / (2 * rozmiar kamery orto.)

    Więc jeśli będziemy działać z wartością 135 PPU, duszek o wysokości 1920 pikseli będzie miał 14.222222 jednostek wysokości na świecie, co oznacza, że ​​będziemy potrzebować kamery o wysokości 7.111111, aby uchwycić całość od góry do dołu (ponieważ wysokość kamery jest mierzona od środek na środku)

  4. Rozmiar w pikselach rozdzielczości ekranu okna / wyjścia.

    Domyślnie widok z kamery wypełnia ekran w pionie, więc jeśli ekran / okno zmieni wysokość, pionowy kadr nie zmieni się (obiekt na górnej lub dolnej krawędzi ekranu nie poruszy się lub zostanie przycięty, cała scena będzie się powiększać lub zmniejszać, aby wypełnić dostępną wysokość).

    Tak więc liczba jednostek świata, które kamera widzi od góry do dołu map do liczby pikseli w oknie / ekranie od góry do dołu.

    Wyjściowy rozmiar piksela = zajmowana część wysokości kamery * Wysokość okna w pikselach

    Więc jeśli nasz ekran ma 1920 pikseli wysokości, a nasz sprite źródłowy dokładnie wypełnia widok kamery, zostanie on wyprowadzony na całe 1920 pikseli ekranu w wyrównaniu 1: 1.

DMGregory
źródło
Jestem ci bardzo wdzięczny za szczegółową odpowiedź !!!!
Faizan Khan
3
Cieszę się, że okaże się przydatny! Napisałem kilka innych pytań i odpowiedzi na temat pracy z rozmiarami ikonek w Unity, które mogą również pomóc: na temat wyboru rozmiarów ikonek , dopasowywania wyglądu
ikonek
1
Dzięki ... Śledziłem cię również na Twitterze ... Czuję się naprawdę dobrze, że miałem kontakt z jakąś osobą pracującą w UbiSoft :)
Faizan Khan