Einheit - Wie kann man Mesh über Skript umbenennen?C#

Ein Treffpunkt für C#-Programmierer
Anonymous
 Einheit - Wie kann man Mesh über Skript umbenennen?

Post by Anonymous »

Ich arbeite an einem Skript, um Mesh in Einheit direkt umzubenennen, da jedes Mal, wenn ich eine FBX -Datei umbenenne, das Mesh -Asset immer noch den alten Namen aufbewahrt, wie es das letzte Mal von Maya von 3DSMAX exportiert wurde, was wirklich ärgerlich ist. Was ich alles ausprobiert habe, funktioniert nicht, der Code wie: < /p>

Code: Select all

public class Rename
{
[MenuItem("Assets/Test")]
private static void renameTest()
{
//select a fbx in project window
GameObject fbx = Selection.activeGameObject;

Mesh meshAsset = fbx.GetComponentInChildren().sharedMesh;

meshAsset.name = "new name";
Debug.Log(meshAsset);
}
}
< /code>
Ich habe es auch versucht: < /p>
private static void renameTestv2()
{
GameObject fbx = Selection.activeGameObject;

Mesh meshAsset = fbx.GetComponentInChildren().sharedMesh;

Mesh meshAsset2 = Object.Instantiate(meshAsset);
meshAsset2.name = "new name";
fbx.GetComponentInChildren().sharedMesh = meshAsset2;
}
< /code>
Der dritte Weg kann den Namen des Netzes in der Meshfilter -Komponente von FBX ändern, aber das tatsächliche Subasset verwendet immer noch die alte.private static void renameTest()
{
GameObject fbx = Selection.activeGameObject;
string path = AssetDatabase.GetAssetPath(fbx);
Mesh meshAsset = AssetDatabase.LoadAllAssetRepresentationsAtPath(path)[0] as Mesh;
meshAsset.name = "new name";
fbx.GetComponentInChildren().sharedMesh = meshAsset;
Debug.Log(meshAsset);

}
Wie kann ich dieses Problem lösen? Die Datei ändert sich eigentlich nicht, warum passiert das? Meine Schritte sind < /p>

Die Datei aa.fbx in Einheit in bb.fbx < /li>
BB.FBX in 3DSMAX importieren und den Namen von AA in 3DSMAX < /li>
export in unität als bbbx erneut.>

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post