using UnityEngine; using UnityEditor; public class Texture2DArrayCreator { [MenuItem("Assets/Create/Texture2DArray From Textures")] public static void CreateTexture2DArray() { var textures = Selection.GetFiltered(SelectionMode.DeepAssets); if (textures.Length == 0) { Debug.LogWarning("No textures selected!"); return; } int width = textures[0].width; int height = textures[0].height; TextureFormat format = textures[0].format; var textureArray = new Texture2DArray(width, height, textures.Length, format, false, false); for (int i = 0; i < textures.Length; i++) { for (int mip = 0; mip < textures[i].mipmapCount; mip++) { Graphics.CopyTexture(textures[i], 0, mip, textureArray, i, mip); } } AssetDatabase.CreateAsset(textureArray, "Assets/NewTexture2DArray.asset"); AssetDatabase.SaveAssets(); Debug.Log("Texture2DArray created successfully!"); } }