AniProGuy2 Geschrieben 3. Dezember 2016 Melden Share Geschrieben 3. Dezember 2016 Hallo Community, Ich habe mal wieder ein Problem ^^ Und zwar habe ich als meinen Spieler als ein Pregab. Er besteht aus dem Mesh und der Armature (aus einer .fbx) und dazu noch aus ein paar Emptys, die ich in Unity hinzugefügt habe. Nun ist es so, dass ich an dem Objekt noch ein paar Dinge ändern will, und es dann neu in Unity importieren muss. So will ich z.B. die Augenbrauen des Spielers als seperates Objekt machen (es war vorher eben ein Objekt) und ich brauche auch ein paar "Extra Transforms" für die Dinge, die er halten soll. Wenn ich aber in blender die Augenbrauen seperiere und es dann neu exportiere (und dann die .fbx im Unityordner damit überschreibe), dann fehlen bei dem Prefab die Augenbrauen einfach und sind nicht als einzelnes Mesh vorhanden. Bei dem importierten Objekt stimmt alles, aber bei dem Prefab eben nicht. Ähnlich ist es auch, wenn ich die Extra Transforms in Unity hinzufüge, die fehlen dann bei dem Prefab auch. Wisst ihr, wie ich das machen kann? Bzw. ist das ein Fehler in Unity oder soll das auch gar nicht funktionieren? Ich muss nunmal leider immer wieder kleinere Änderungen an dem Model vornehmen und daher muss ich auch häufiger neu imporieren. Aber ich will eben nicht jedes mal aufs neue das Prefab zusammenbauen müssen, weil das einfach ewig dauert. Ich bin dankbar für jede Hilfe! MfG, AniProGuy2 Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sleepy Geschrieben 3. Dezember 2016 Melden Share Geschrieben 3. Dezember 2016 Als Tipp: Vergiss das mit dem Importieren ! Erstell dir dein Unity Projekt wenn du es nicht schon gemacht hast und Speichere dir deine Modelle DIREKT in dein Unity Projekt. Wenn du an deinem Modell etwas ändern willst dann ändere es in deinem 3D Programm und über speichere dann das FBX in deinem Unity Projekt Folder wieder. Ich lege mir immer gleich nach Projekt Erstellung über den Explorer einen Asset und Textur Ordner und dann wird immer alles dort reingespeichert. Da ich Maya verwende kann ich alle Outsputs dann auch auf den Unity Asset Ordner einstellen. speichere etwas in Maya so möchte Maya das Asset automatisch im Unity Projekt speichern. Das ist sehr praktisch Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 3. Dezember 2016 Autor Melden Share Geschrieben 3. Dezember 2016 Also eigentlich mache ich ja genau das. Also ich bearbeite die Datein in blender und überspeichere dann die .fbx in den Unity ordner. Nur leider wir eben wie gesagt, das von dem Prefab nicht übernommen. Wenn ich in Unity auf die fbx schaue, dann ist es dort aber übernommen worden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 3. Dezember 2016 Melden Share Geschrieben 3. Dezember 2016 Ein Prefab ist ja quasi ein "eingeforenes" Musterszenenobjekt und ich denke es ist leider "normal", daß man es aktualisieren muss, wenn man an den Projektassets etwas verändert. Es hat eben alles Vor- und Nachteile, anderseits möchte ich ja auch nicht, daß sich ein Prefab ständig "wandelt" und solange du die Verbindung zwischen Prefab und einem Szenenobjekt nicht gebrochen hast, musst du "nur" das Prefab aktualisieren und das Szenenobject übernimmt diese Änderungen automatisch in der Szene. Hier noch eine interessante Diskussion über dein Problem, es scheint auch etwas damit zu tun zu haben, daß eine automatische Aktualisierung des Prefabs nur in manchen Fällen klappt und beim Hinzufügen von Submeshen oder einer geänderten Reihenfolge der Submeshes z.b. nicht mehr (der sichere Weg ist also immer noch das Prefab von Hand zu "aktualisieren", d.h. den extern geänderten Mesh aus dem Projektfolder erneut aufs Prefab ziehen): https://forum.unity3...changed.318201/ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 3. Dezember 2016 Autor Melden Share Geschrieben 3. Dezember 2016 Danke für die Antwort! Eigentlich mache ich das ja. Also ich habe die .fbx und dort füge ich jetzt z.B. Extra Transforms hinzu. Dann sind die dort zwar vorhanden aber bei dem Prefab nicht (weder bei dem im Ordner noch bei dem in der Szene). Und das ist ja das Problem, falls das aus meiner Frage nicht hervorgegangen ist. Wenn das Prefab aber auf die .fbx zugreift, dann müsste das doch übernommen werden, oder? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 3. Dezember 2016 Melden Share Geschrieben 3. Dezember 2016 Im "Prinzip" ja, aber vermutlich hat Unity ein Problem damit, wenn neue Meshanteile hinzukommen oder Teile verschoben werden, d.h. dies stört oder unterbricht dann den automatischen Aktualisierungsprozess des Meshes im Prefab (Unity aktualisiert dann nur die zuvor schon vorhandenen Meshanteile). Um hier sicher zu gehen, einfach den geänderten Mesh aus dem Projektfolder erneut ins Prefab ziehen, dies sollte den Mesh im Prefab dann vollständig aktualisieren und damit auch das Szenenobjekt, das aus dem Prefab erstellt wurde (insofern die Verbindung zwischen Prefab und Szenenobjekt nicht zuvor schon gebrochen wurde) In deinem konkreten Fall, hast du aus dem Mesh ja die Augenbrauen entfernt und die Augenbrauen als neuen Mesh hinzugefügt. Unity aktualisiert nun den bekannten Mesh im Projektfolder und im Prefab und entfernt dadurch die Augenbrauen. Den von dir neu hinzugefügten Mesh berücksichtigt es zwar im Assetfolder (nach dem Import von Unity), aber die Prefab bekommt davon nichts mit und das Augenbrauenmesh fehlt dann in der Prefab. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 3. Dezember 2016 Autor Melden Share Geschrieben 3. Dezember 2016 Also die Verbindung ist noch da aber wir ist das gemeint mit dem reinziehen? Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 3. Dezember 2016 Melden Share Geschrieben 3. Dezember 2016 Du ersetzt und ergänzt quasi die alten FBX-Meshes in deinem Prefab mit den neuen FBX-Meshes indem du die FBX-Meshes aus dem Projektfolder erneut ins Prefab verschiebst und damit die alten Meshes "überschreibst" (das meine ich mit reinziehen der Meshes ins Prefab) Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 4. Dezember 2016 Autor Melden Share Geschrieben 4. Dezember 2016 Also soll ich die neue Fbx in den Ornder ziehen und auf ersetzen klicken? Tut mir leid aber ich verstehen das irgendwie nicht so ganz ^^' Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 4. Dezember 2016 Autor Melden Share Geschrieben 4. Dezember 2016 Ok, also ich habe die .fbx mal von der Szene ins Prefab gezogen aber da löscht es ja alles raus und das ist im Prinzip dasselbe wie neu machen ^^ Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 4. Dezember 2016 Autor Melden Share Geschrieben 4. Dezember 2016 So, ich habe jetzt nochmal das Prefab erstellt und wenn ich nun in der fbx neue Extra Transforms hinzufügen, dann werden die auch ins Prefab aktualisiert. Ich weiß nicht, woran es lag aber scheinbar war es ein Bug. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Zer0Cool Geschrieben 4. Dezember 2016 Melden Share Geschrieben 4. Dezember 2016 Ok, also ich habe die .fbx mal von der Szene ins Prefab gezogen aber da löscht es ja alles raus und das ist im Prinzip dasselbe wie neu machen ^^ Ich mache mal eine Ablaufliste: 1) Du editierst dein Mesh z.b in Blender. 2) Dann speicherst du es auf deiner Festplatte, am besten schon in dem Assetfolder von deinem Unityprojekt oder du kopierst es nachträglich dorthin. 3) Unity importiert nun dein FBX in Unity. 4) Du nimmst deine FBX-Meshes aus dem Projektfolder und ziehst sie mit der Maus auf dein Prefab, welches auch im Projektfolder liegt. Dadurch werden deine alten Meshes in deiner Prefab ersetzt. 5) Die Szenenobjekte. die du aus diesem Prefab erstellt hast, sollten nun automatisch aktualisiert werden. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Sleepy Geschrieben 4. Dezember 2016 Melden Share Geschrieben 4. Dezember 2016 Bin mir nicht sicher aber ich glaube wenn man im Projekt Folder einen rechtsklick auf das Prefab macht konnte man dort auf refresh oder reimport etc klicken. Es gab außerdem auch eine refresh all möglichkeit ich könnte mir vorstellen das spätestens die dein Problem löst. Im Prinzip ist ein Prefab auch nur eine Instanz von dem Objekt das in deinem Projekt Folder liegt. Wenn aber warum auch immer nicht versteht das ich was geändert hat dann hast du genau das Problem. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
AniProGuy2 Geschrieben 4. Dezember 2016 Autor Melden Share Geschrieben 4. Dezember 2016 Nun also ich habe Refresh probiert und auch Reimport (all). Bei all denen hat sich aber nichts geändert. Es muss irgendein Bug oder so gewesen sein, denn jetzt funktioniert es ja. Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Recommended Posts
Archiviert
Dieses Thema ist jetzt archiviert und für weitere Antworten gesperrt.