Jump to content
Unity Insider Forum
Wattsefakk

GameObject als Prefab speichern mit GeneriertenMesh

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.

Edited by Wattsefakk

Share this post


Link to post
Share on other sites

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;

 

Share this post


Link to post
Share on other sites

ja genau das will ich tuen nur dann ist das Mesh nicht mehr da... Es wird nicht gespeichert egal ob ich es per code mache oder manuell mit der Hand. 

Share this post


Link to post
Share on other sites

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.

Share this post


Link to post
Share on other sites
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).

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...