Unity2020.2からTexture2DArrayやTexture3Dがインポート設定で作れるようになってた話です。
Unity2021.1.11f1
Texture2DArray?Texture3D?
Texture2DArrayやTexture3Dは同じサイズとフォーマットのテクスチャを一つにまとめたアセットです。 Texture2DArrayは配列のようにインデックスアクセスができ、Texture3Dは複数のテクスチャを三次元情報として保持します。
いままではスクリプトで作るしかなかった
さてこれらのアセットは、今まではスクリプトで作るしかありませんでした。
例えばTexture2DArrayの場合は以下のように作ります。
using System.IO; using UnityEditor; using UnityEngine; public class Texture2DArrayExample { [MenuItem("Example/Create Texture 2D Array")] private static void CreateTexture2DArray() { const int width = 64; const int height = 64; const int depth = 10; const TextureFormat format = TextureFormat.ARGB32; var tex2dArr = new Texture2DArray(width, height, depth, format, false) { filterMode = FilterMode.Bilinear, wrapMode = TextureWrapMode.Clamp }; // テクスチャ1枚分ごとに適当に色を変えながらTexture2DArrayを作る for (var i = 0; i < depth; i++) { var color = Random.ColorHSV(); var pixels = new Color[width * height]; for (var j = 0; j < width * height; j++) { pixels[j] = color; } tex2dArr.SetPixels(pixels, i); } tex2dArr.Apply(); AssetDatabase.CreateAsset(tex2dArr, Path.Combine("Assets", "TestTexture2DArray.asset")); } }
インポート設定から作れるようになった
Unity2020.2からはこれがテクスチャのインポート設定から作れるようになりました。
Shape設定から2D Arrayや3Dを選択してApplyすることで設定できます・
Release noteは以下の通りです。
Editor: Added support for importing texture arrays (Texture2DArray) and volume textures (Texture3D) from "flipbook" image layouts. To use this, open the Texture Importer and see the Shape setting. https://unity3d.com/unity/whats-new/2020.2.0 より