TextureImporter
принадлежит пространству имен UnityEditor
, которое не существует во встроенном приложении, а только в самом редакторе Unity. &правая стрелка; Вы не можете использовать это!
Что вы можете сделать, это использовать Sprite.Create
для генерации спрайта из заданного Texture2D
.
Обрезка
Если на самом деле речь идет только об вырезании определенной части текстуры, чтобы использовать ее в качестве спрайта, вам нужно только определить в параметре rect
часть текстуры, которую вы хотите использовать из этого изображения.
// Wherever you get the texture from
Texture texture = ...;
// E.g. for using the center of the image
// but half of the size
var rect = new Rect(texture.width / 4, texture.height / 4, texture.width / 2, texture.height / 2);
// Create the sprite
var sprite = Sprite.Create(texture, text, Vector2.one * 0.5f);
где rect
является
Местоположение спрайта на исходной текстуре, указанное в пикселях.
Нарезка
Если вам дополнительно требуется граница среза (которую вы обычно определяете в Sprite Editor
в Unity), существует перегрузка Sprite.Create
, которая дополнительно принимает параметр border
, например,
var borders = new Vector4(2, 2, 2, 2);
var sprite = Sprite.Create(texture, rect, Vector2.one * 0.5f, 100, SpriteMeshType.FullRect, borders);
где border
Возвращает размеры границ спрайта.
X = слева, Y = снизу, Z = справа, W = сверху.
API этого не говорит, но, как и rect
значения, эти значения также представлены в пикселях.