Jump to content
Unity Insider Forum

GameObject als Prefab speichern mit GeneriertenMesh


Wattsefakk

Recommended Posts

Ich will ein GameObject als Prefab speichern, das Problem ist das Mesh was in diesem GameObject steckt, wurde vorher per Code generiert und. Ich habe folgenden Code bisher benutzt nur speichert er zwar das GameObject als Prefab nur das Mesh ist null. Wisst ihr da noch eine andere Möglichkeit?

UnityEngine.Object prefab = EditorUtility.CreateEmptyPrefab("Assets/test.prefab");
EditorUtility.ReplacePrefab(mesh, prefab, ReplacePrefabOptions.ConnectToPrefab);

Damit habe ich es versucht. Funktioniert halt nur nicht. 
Edit:
Habe nun die aktuelle Funktion gefunden und zwar diese hier:

public static GameObject CreatePrefab(string path, GameObject go, ReplacePrefabOptions options = ReplacePrefabOptions.Default);

Problem bleibt aber bestehen das das Mesh nicht gespeichert wird.

Link zu diesem Kommentar
Auf anderen Seiten teilen

Eine einfache (ohne Skriptcode) Lösung wäre, das Spiel zu stoppen und das GameObjekt per Hand direkt aus der Szene in einen Prefabordner zu ziehen. Wenn du es per Code lösen möchtest, dann könntest du noch einmal versuchen, den Mesh direkt im erzeugten Prefab nachzusetzen.
 

swapMesh = calculatedGameObject.GetComponent<MeshFilter>().mesh;
// .. Create Prefab prefab here ...
prefab.GetComponent<MeshFilter>().mesh = swapMesh;

 

Link zu diesem Kommentar
Auf anderen Seiten teilen

Mesh manuell speichern geht auch nicht.
Schau dir mal deinen Inspector in der runtime an. Das Mesh-Feld hat einen Wert (dein Mesh) aber wenn du draufklickst wird das Mesh Asset nicht im Projekt selektiert, weils das nicht gibt. Also musst du das Mesh nocheinmal seperat speichern.

Das machst du mit AssetDatabase.CreateAsset.

Link zu diesem Kommentar
Auf anderen Seiten teilen

vor 9 Stunden schrieb Wattsefakk:

Das habe ich zuerst ausprobiert allerdings ist dann das Mesh auch weg da es zur Laufzeit generiert wird 

Das sollte aber eigentlich gehen, wenn du den Editor "stoppst" (=Pausebutton), dann ist das Mesh noch da und daher kannst du das Gameobjekt inklusive Mesh auch aus der Szene in den Projektfolder ziehen (und damit wird das Asset samt Mesh automatisch angelegt).

Link zu diesem Kommentar
Auf anderen Seiten teilen

Archiviert

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

×
×
  • Neu erstellen...