Unityで3D Textureや2D Texture ArrayのColumnsとRowsをスクリプトから設定する方法です。
やりたいこと
テクスチャのインポート設定において、Texture Shapeを2D Arrayや3Dにすると、ColumnsとRowsという設定項目が現れます。
本記事ではこれらの値をスクリプトから設定する方法についてまとめます。
方法
ColumnsとRowsをスクリプトから設定にするには、以下のようにTextureImporter
を取得した後に、さらにTextureImportSettings
を取得し、それに対して値を設定する必要があります。
詳細についてはコメントを参照してください。
using System; using UnityEditor; using UnityEngine; public static class Example { [MenuItem("Example/Run")] private static void Run() { var target = Selection.activeObject as Texture; if (target == null) throw new InvalidOperationException($"Selection is not Texture. {Selection.activeObject}"); // TextureImporterを取得 var importer = (TextureImporter)AssetImporter.GetAtPath(AssetDatabase.GetAssetPath(target)); // TextureImporterSettingsを取得してColumnとRowを設定 var settings = new TextureImporterSettings(); importer.ReadTextureSettings(settings); settings.flipbookColumns = 4; settings.flipbookRows = 4; // TextureImporterSettingsをTextureImporterに設定 importer.SetTextureSettings(settings); // 保存 importer.SaveAndReimport(); } }