モデルのインポート設定の[マテリアル]セクションでは、編集のための複数選択はサポートされていません。図に示すように、複数のモデルを選択すると、エディターは、複数選択ではマテリアル編集がサポートされていないことを確認します。
多数のモデルをプロジェクトにインポートする場合、デフォルトの場所は[埋め込みマテリアルを使用]に設定され、[外部マテリアルを使用(レガシー)]に設定する場合は、モデルを選択して場所を順番に設定する必要があります。これは時間と労力を要します。
この記事で実装されているツールは、次の図に示すように、マテリアルの場所の設定で複数の選択モデルをサポートできます。
コードは次のように表示されます。
using UnityEngine;
using UnityEditor;
namespace SK.Framework
{
public class ModelImportSettings : EditorWindow
{
private ModelImporterMaterialLocation location;
[MenuItem("SKFramework/Tools/Model Import Settings")]
private static void Open()
{
GetWindow<ModelImportSettings>("Model Import Settings").Show();
}
private void OnGUI()
{
GUILayout.BeginHorizontal();
{
GUILayout.Label("Location");
location = (ModelImporterMaterialLocation)EditorGUILayout.EnumPopup(location);
}
GUILayout.EndHorizontal();
if (Selection.gameObjects.Length == 0) return;
GUILayout.FlexibleSpace();
if (GUILayout.Button("Apply"))
{
for (int i = 0; i < Selection.gameObjects.Length; i++)
{
var obj = Selection.gameObjects[i];
string path = AssetDatabase.GetAssetPath(obj);
ModelImporter importer = AssetImporter.GetAtPath(path) as ModelImporter;
if (importer != null)
{
importer.materialLocation = location;
}
}
}
}
private void OnSelectionChange()
{
Repaint();
}
}
}
パブリックアカウント「ContemporaryWildProgrammer」へようこそ