🕸️ Unity Editor上でメッシュを保存する
Plateau を使う機会があったのでせっせとファイルをダウンロードして軽量化していたのですが、 Mesh Baker でベイクした後、そのままだとメッシュが空白で表示されていてPrefab化やExportして別のシーンやプロジェクトにもっていく事ができないみたいでした。
調べてみたら解決方法は以下の記事にあるように、メッシュデータを *.asset
ファイルとして保存する必要がありました。
そのまま記事に記載してくださっている通りにやるだけで大丈夫なのですが、今回は変換したいファイルがたくさんあり、せっせとゲームオブジェクトにアタッチしてはpathを書いて、というのが大変そうだったので「書き出しファイルのパスや名前を設定しなくても [ゲームオブジェクトの名前].asset
で保存されるように」「右クリックしなくてもインスペクタウィンドウにボタンが表示されるように」の2点の改良を加えて使用しました。また使う事があるかもしれないのでメモ。
コピーしました
using UnityEngine;
#if UNITY_EDITOR
using UnityEditor;
#endif
public class MeshCreator : MonoBehaviour
{
[SerializeField]
MeshFilter mesh;
public void Action()
{
#if UNITY_EDITOR
AssetDatabase.CreateAsset(mesh.mesh, $"Assets/{mesh.gameObject.name}.asset");
AssetDatabase.SaveAssets();
#endif
}
}
#if UNITY_EDITOR
[CustomEditor(typeof(MeshCreator))]
public class MeshCreatorEditor : Editor
{
public override void OnInspectorGUI()
{
base.OnInspectorGUI();
if (GUILayout.Button("Create *.asset"))
{
MeshCreator t = target as MeshCreator;
t.Action();
}
}
}
#endif
このブログの*.cs
のハイライト、あんまりいい色じゃないな…
Comment
comments powered by Disqus