テスト用の シンプルな Texture2DArray を作成するためのツール
using UnityEditor; using UnityEngine; public class CreateTexture2DArrayEditor : EditorWindow { [MenuItem("Tools/CreateTexture2DArray")] private static void ShowWindow() { var window = GetWindow<CreateTexture2DArrayEditor>(); window.titleContent = new GUIContent(nameof(CreateTexture2DArrayEditor)); window.Show(); } private int _size = 32; [SerializeField] private Color[] _colors = new Color[0]; private void OnGUI() { _size = EditorGUILayout.IntField("Size", _size); using (new EditorGUILayout.HorizontalScope()) { if (GUILayout.Button("Reset")) { _colors = new Color[0]; } if (GUILayout.Button("Add")) { ArrayUtility.Add(ref _colors, Color.white); } } for (int i = 0; i < _colors.Length; i++) { _colors[i] = EditorGUILayout.ColorField($"{i}", _colors[i]); } using (new EditorGUI.DisabledScope(_colors.Length <= 0)) { if (GUILayout.Button("Create")) { Create(_size, _colors); } } } private void Create(int size, Color[] colors) { var asset = new Texture2DArray(size, size, colors.Length, TextureFormat.RGB24, false, false); for (var i = 0; i < colors.Length; i++) { var c = new Color[size * size]; for (var j = 0; j < size * size; j++) { c[j] = colors[i]; } asset.SetPixels(c, i); } asset.Apply(); var path = "Assets/Color.asset"; AssetDatabase.CreateAsset(asset, path); } }