Jump to content
Unity Insider Forum

Prefabs werden beim Reimport nicht upgedated


fogman

Recommended Posts

Hi,

 

ich habe folgendes Problem: Wenn ich in Blender ein schon in Unity importiertes Modell ändere und dieses dann von Unity reimportiert wird, wirken sich die änderungen nicht auf die Prefabs aus.

 

Als Beispiel:

Ich importiere ein Objekt und erstelle daraus ein Prefab.

Ich füge dem Prefab ein Material und ein Script hinzu.

Irgenwann stelle ich fest, das ich das Objekt in Blender abändern muss.

Nach der erfolgten änderung importiert Unity das Objekt, aber die änderungen wirken sich nicht auf

das Prefab aus. Ich muss es komplett neu erstellen, was natürlich den Workflow extrem einschränkt.

 

Habe ich hier vielleicht einfach nur ein Verständnisproblem, gibt es einen magischen Button oder andere Gründe für dieses Verhalten? Wäre super wenn Ihr mir helfen könntet.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Wie importierst du in Unity?

Hast du direkt die Blender-Dateien in den Assets? Oder exportierst du aus Blender?

Speicherst du direkt über die alte Datei oder gibt es zwischendurch Namensänderungen?

 

Probiere mal, in Blender in den User Preferences die "Save Versions" auf 0 zu stellen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Es kommt darauf an, was genau du in Blender abänderst.

 

Wenn du bereits existierende Meshes veränderst, dann verändern die sich auch im Prefab.

Wenn du allerdings Dinge hinzufügst, dann werden die nicht automatisch ins Prefab übernommen.

 

Der Grund:

Wenn du eine importierte Blender Datei in die Szene ziehst und zB eine Komponente hnzufügst wie in deinem Fall ein Script, dann wirst du eine Meldung bekommen haben, dass die Connection verloren geht. Das neue Prefab, das du damit erstellst ist deswegen unabhängig und verwendete lediglich die Mesh Daten der Blender Datei und auch nur die, die du ihm explizit zuweist.

 

Damit dein Prefab so arbeitet, wie du es möchtest musst du ein leeres GameObject erstellen, diesem dein Blender Model unterordnen, und dem leeren Parent Objekt das Script zuweisen. Dann daraus ein Prefab erstellen.

Auf diese Weise bleibt die Verbindung zur Blender Datei bestehen.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Vielen Dank für die schnelle Reaktion!

 

Wie importierst du in Unity?

Hast du direkt die Blender-Dateien in den Assets? Oder exportierst du aus Blender?

Speicherst du direkt über die alte Datei oder gibt es zwischendurch Namensänderungen?

 

Probiere mal, in Blender in den User Preferences die "Save Versions" auf 0 zu stellen.

 

-Die .blend Dateien liegen in den Assets

-Es wird immer die gleiche Datei überschrieben, keine Namesänderung

 

Ich füge in Blender nichts hinzu, ich habe das betreffende Objekt lediglich um 90 Grad gedreht.

Das die Verbundung verloren geht klingt logisch, das wird der Grund sein, auch wenn ich keine Meldung bekommen habe.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine Drehung bewirkt nur eine Änderung des Meshs, wenn du die Drehung im Edit Modus ausführst. Damit werden die Vertices selbst gedreht.

Wenn du im Objekt Modus drehst, bewirkt das auf das Mesh selbst nichts, denn das ist dann wie wenn du in Unity eine Drehung ausführst. Selbst bei bestehender Verbindung zum Prefab wird die Drehung wie alle anderen Änderungen an der Transform Komponente nicht automatisch auf das Prefab übertragen. Das waere sonst fatal, denn man könnte dann nicht Prefabs beliebig in der Szene plazieren.

 

€dit: Wieso macht das Forum aus allen kleinen Ä ein grosses Ä ? :blink:

Link zu diesem Kommentar
Auf anderen Seiten teilen

Ja, stimmt, da ist das Problem :)

Die Objektdrehung wird in Unity von den Transforms übernommen und dann überschrieben. Änderungen kriegen die Transforms nicht mit. Wenn du das Mesh selber drehst und nicht das Objekt, wie koaangel sagt, dann dürfte es gehen.

 

@koaangel: Bekanntes Problem der Forensoftware mit Umlauten, der Hersteller fixt das aber leider irgendwie nie.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.

×
×
  • Neu erstellen...