Sprite.Create
делает именно то, что вы ищете.
Из документов Unity на Sprite.Create:
Sprite.Create создает новый Sprite, который можно использовать в игровых приложениях.Текстура должна быть загружена и назначена для создания, чтобы управлять тем, как будет выглядеть новый Sprite.
В коде:
public Texture2D myTexture2D; // The texture you want to convert to a sprite
Sprite mySprite; // The sprite you're gonna save to
Image myImage; // The image on which the sprite is gonna be displayed
public void FooBar()
{
mySprite = Sprite.Create(myTexture2D, new Rect(0.0f, 0.0f, myTexture2D.width, myTexture2D.height), new Vector2(0.5f, 0.5f), 100.0f);
myImage.sprite = mySprite; // apply the new sprite to the image
}
В приведенном выше примере мы берем изображениеданных из myTexture2D
и создайте new Rect
того же размера, что и исходный texture2D, с точкой поворота в центре, используя 100 пикселей на единицу.Затем мы применяем вновь созданный спрайт к изображению.