Od wersji 5 (?) Unity ma nowy typ komponentu BillboardRenderer
. Niestety dokumentacja jest dość słaba.
Można go dodać w inspektorze, klikając „Dodaj komponent -> Nieprzyzwoicie -> Renderer billboardów”, ale najwyraźniej wymaga to Billboard Asset
zrobienia czegokolwiek. Wydaje się, że nie ma sposobu, aby stworzyć taki z interfejsu Unity.
Jedno z niewielu zdań z równie słabej dokumentacji BillboardAsset brzmi:
imageCount Liczba wstępnie upieczonych obrazów, które można przełączać, gdy billboard jest oglądany pod różnymi kątami.
Mój najnowszy projekt będzie miał grafikę z miksowaniem duszka / wielokąta, więc mógłbym skorzystać z komponentu, który renderuje billboard z innym duszka w zależności od kąta widzenia. Ale wydaje się, że nie ma metody dodawania takich obrazów.
Zastanawiałem się więc, czy możesz opublikować przykład użycia tego komponentu.
Odpowiedzi:
AKTUALIZACJA (2018): Od czasu, gdy napisałem tę odpowiedź, ujawniono więcej właściwości. Może możemy go teraz stworzyć, a może nie. Muszę zbadać.
Nie możesz tego użyć.
Oto zdekompilowany
BillboardAsset
kod:Nie można dosłownie ustawić obrazów, nawet poprzez odbicie. Ktoś może pomyśleć: „w porządku, nie można tego zrobić bezpośrednio, ale może istnieje jakiś zakład fabryczny?”. Pędzę Znajdź Usages w dekompilator i uzyskać:
BillboardAssetInspector
aBillboardRenderer
.Oto
BillboardRenderer
:Wow, ta klasa jest jeszcze głupsza. To po prostu pozbawiony logiki posiadacz danych. Oczywiście cała praca jest wykonywana przez
Renderer
. Mówiąc dokładniej, za pomocą jednej lub kilku[WraplessIcall]
metod. Nie umieszczę tutaj jego kodu, ponieważ jest to długa i bezużyteczna lista członków[WraplessIcall]
.W przeciwieństwie do zawartości UnityEngine.dll
BillboardAssetInspector
(która znajduje się w UnityEditor.dll ) ma w niej prawdziwy kod. Ponownie nie umieszczę tutaj jego kodu, ponieważ z nazwy jasno wynika, że i tak jest niczym więcej niż Inspektorem .Ta sama sytuacja z
BillboardAssetInspector
.Rozumiem, to jest do użytku wewnętrznego; ale gdzie to jest dokładnie używane?
W systemie SpeedTree (spójrz w szczególności na ostatnie zdjęcie).
Dlaczego dokumentacja wyjaśnia bezużyteczne rzeczy zamiast ostrzegać przed ich natychmiastowym użyciem?
Prawdopodobnie po prostu skopiowałem wszystko z wewnętrznej dokumentacji programistycznej, ulepszonych części, które są ważne dla początkujących i do ogólnego użytku; wtedy był zbyt zajęty uczestnictwem w hype VR, aby zawracać sobie głowę polerowaniem takich ciemnych kątów dokumentacji.
Co możemy z tym zrobić?
Powiedz im, że przeoczyli ten „ciemny kąt” w dokumentacji, na przykład: W edytorze Unity otwórz
Help → Report a bug...
,What is problem related to
wybierzdocumentation
, itp.Czego można zamiast tego użyć?
Możliwe opcje obejmują:
źródło
Aby korzystać z BillboardRenderer, potrzebujesz Zasób Billboard, możesz zbudować Zasób Billboard za pomocą skryptu C #. Sprawdź ten post .
Zasób Billboard ma takie treści: Billboard.asset
Oto kod C #, który posłużył do wygenerowania powyższego pliku
Aby uzyskać więcej informacji, sprawdź post podany na początku odpowiedzi.
źródło