2011-07-26 11 views
5

W moim projekcie XNA 3.1, mam plik cubemap (* .dds), który wydaje się wymagany przez prawie wszystkie moje modele w moim projekcie. Kiedy idę do budowania mojego projektu z zestawu cubemap skompilować do rurociągu, otrzymuję błąd zamiar coś takiego:Aktywa budowane dwa razy z różnymi ustawieniami, co mogę zrobić?

aktywów został zbudowany 2 razy z różnymi ustawieniami: using TextureImporter i TextureProcessor, odwołuje Models \ AlphaDeadTree.X (RacingGameModelProcessor), modele \ AlphaPalm.X (RacingGameModelProcessor), modele \ AlphaPalm2.X (RacingGameModelProcessor), modele \ AlphaPalm3.X (RacingGameModelProcessor) ...

I tak dalej i tak dalej. Kilka wyników google wspomina, że ​​po prostu usunięcie pliku z węzła Zawartość, przy zachowaniu fizycznego pliku w jego katalogu rozwiąże problem, jednak wydaje się, że nie jest już załadowany do potoku treści po usunięciu go z węzła Zawartość projektu, pomimo modeli wymagających tego pliku.

Co mogę zrobić w tym momencie? Czy moja jedyna możliwość zignorowania tego gigantycznego komunikatu ostrzegawczego?

Odpowiedz

3

Widzę w twoim Content.contentproject, że nadal kierujesz wzorcowe tekstury modelu (tekstury \ SkyCubeMap.dds, Shaders \ Textures \ NormalizeCubeMap.dds, ...): to nie jest poprawne. Z projektu dotyczącego treści musisz tylko odwoływać się do modeli (.X), ale nie do tekstur ( .tga, * .dds, itp.) Używanych przez modele. Nie martw się o te tekstury: będą one automatycznie lokalizowane, importowane i przetwarzane.

Na przykład, jeśli masz model o nazwie Tank.X, a ten model używa tekstury o nazwie Tank.dds, musisz tylko dołączyć Tank.X do projektu treści. W tym Tank.dds spowoduje błąd.

Z drugiej strony, trzeba będzie to na swoje treści faktur projektowych, które masz zamiar ładować ręcznie: Content.Load („MyByHandLoadedTexture”);

Jeśli musisz załadować tę samą teksturę z modelu i ręcznie, będziesz musiał ją powielić i sprawić, by modele używały jednej kopii i dołączyć drugą kopię do projektu treści, aby były ładowane ręcznie.

+0

Ah, świetnie! Właśnie znalazłem cały plik kodu, który był przeznaczony do ładowania i obsługi tego pliku mapy sześcianu. Teraz wszystko ma sens, dziękuję bardzo. Domyślam się, że ważną lekcją, którą się tutaj nauczyłeś, jest to, że naprawdę uczysz się kodu, gdy robisz to sam, w przeciwieństwie do modyfikowania szablonów i wstępnie utworzonych projektów. Ale jeszcze raz dziękuję za pomoc. – TGP1994

0

Mapa cubemap została zbudowana dwukrotnie, ponieważ odwołuje się do niej jeden lub więcej modeli (czas jodły) i dlatego, że odwołuje się do niej wyraźnie projekt treści (drugi raz).

Spróbuj usunąć go z projektu, ale OSTROŻNIE, nie klikaj go i naciśnij "usuń": spowoduje to usunięcie go z dysku. Kliknij go prawym przyciskiem myszy iz menu kontekstowego wybierz "wyklucz z projektu" (lub coś podobnego ... Używam zlokalizowanej wersji programu Visual Studio i nie znam dokładnej etykiety opcji w języku angielskim).

+0

Przepraszamy, wykluczając z mojego projektu było to, co sugerowałem, mówiąc "usunięcie z węzła treści". Jeśli to zrobię, brakuje pliku, zgodnie z debuggerem. Zostaje zbudowany z _0 dołączonym do nazwy pliku. – TGP1994

+1

Czy wszystkie modele są przetwarzane za pomocą RacingGameModelProcessor? Czy dwukrotnie sprawdziłeś, czy żadne inne odniesienie do mapy cubemap nadal nie znajduje się w drzewie projektu treści (w innym folderze)?Możesz to sprawdzić, edytując plik Content.contentproject w edytorze tekstu (notatnik?) I wykonując wyszukiwanie (Ctrl + F). –

+0

Moje przeprosiny za spóźnioną odpowiedź. Okazuje się, że to było 2 razy dodawane w moim drzewie treści. Po usunięciu drugiego nadal otrzymuję ten sam komunikat o błędzie. Wygląda na to, że wszystkie modele są przetwarzane przez RacingGameModelProcessor, a następnie przekazują wykonanie każdego przetwarzania z powrotem do ModelProcessor, aby dokończyć wszystko, co ma do zrobienia (w tej chwili przytaczam komentarze w kodzie, Pomóżcie mi to zamieścić?) – TGP1994

3

Można również kliknąć teksturę prawym przyciskiem myszy, aw oknie dialogowym właściwości wyszukać opcję "Utwórz działanie" i ustawić na "Brak". Działa to dla mnie w XNA 4.0.

Powiązane problemy