Sprite.Create
Declaration
public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude);public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType);public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType, Vector4 border, bool generateFallbackPhysicsShape);public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType, Vector4 border);public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot);public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit);public static Sprite Create(Texture2D texture, Rect rect, Vector2 pivot, float pixelsPerUnit, uint extrude, SpriteMeshType meshType, Vector4 border, bool generateFallbackPhysicsShape, SecondarySpriteTexture[] secondaryTextures);Параметры
| Параметр | Описание |
|---|---|
| текстура | Текстура, из которой будет получена графика Sprite. |
| прямой | Прямоугольная секция текстуры, которая будет использоваться для Sprite. |
| Пивот | Точка вращения спрайта относительно его графического прямоугольника. |
| pixelsPerUnit | Число пикселей в Sprite, соответствующих одной единице в мировом пространстве. |
| экструдировать | Размер, на который сетка Sprite должна быть расширена наружу. |
| meshType | Тип сетки, созданной для Sprite. |
| граница | Размеры границ Sprite (X=левый, Y=нижний, Z=правый, W=верхний). |
| generateFallbackPhysicsShape | Создавать ли физические формы по умолчанию для sprite. |
| secondaryTextures | Свойства вторичной текстуры, которые будут использоваться созданным спрайтом. |
Описание
Создать новый объект Sprite.
Sprite.Create создает новый Sprite текстуры, которые могут быть использованы в игровых приложениях. Текстура должна быть загружена и назначена Sprite.Create в целях контроля за тем, как новые Sprite В примере скрипт ниже новый Sprite отображается при нажатии кнопки. Новый Sprite создается в Start.
Второй аргумент rect определяет используемую субтекстуру. rect аргумент определяется в пикселях Текстуры. Rect(50.0f, 10.0f, 200.0f, 140.0f) создаст диапазон слева направо от 50.0f до 50.0f + 200.0f = 250.0f. Диапазон снизу вверх будет 10.0f до 10.0f + 140.0f = 150.0f. Третий аргумент pivot определяет то, что становится центром Sprite. Это Vector2 относительно rect где Vector2(0.0f, 0.0f) находится в нижнем левом углу, а Vector2(1.0f, 1.0f) — в верхнем правом. pixelsPerUnit значение контролирует размер Sprite. Уменьшение этого ниже 100 пикселей на мир увеличивает размер Sprite. extrude значение определяет число пикселей, которые окружают Sprite. Это полезно, если Sprite включается в атлас. meshType выбирает,
FullRect или Tight используется. Наконец border определяет разрез Sprite и обычно используется для определения поведения Sprite по плитке. Значения в единицах пикселей.
Дополнительные ресурсы: SpriteRenderer class.
// Create a Sprite at startup. // Assign a Texture to the Sprite when the button is pressed.
using UnityEngine;
public class SpriteCreate : MonoBehaviour { public Texture2D tex; private Sprite mySprite; private SpriteRenderer sr;
void Awake() { sr = gameObject.AddComponent<SpriteRenderer>() as SpriteRenderer; sr.color = new Color(0.9f, 0.9f, 0.9f, 1.0f);
transform.position = new Vector3(1.5f, 1.5f, 0.0f); }
void Start() { mySprite = Sprite.Create(tex, new Rect(0.0f, 0.0f, tex.width, tex.height), new Vector2(0.5f, 0.5f), 100.0f); }
void OnGUI() { if (GUI.Button(new Rect(10, 10, 100, 30), "Add sprite")) { sr.sprite = mySprite; } } }
В следующем примере кода показано, как создать Sprite при запуске с помощью свойств Вторичной текстуры.
using UnityEngine;
// Create a Sprite at startup with Secondary Textures properties
public class ExampleClass : MonoBehaviour { void Start() { var texture = new Texture2D(64, 64); var secondaryTexture1 = new Texture2D(64, 64); var secondaryTexture2 = new Texture2D(64, 64); var secondaryTexture3 = new Texture2D(64, 64); var secondarySpriteTexture = new[] { new SecondarySpriteTexture() { name = "_SecondaryTexture1", texture = secondaryTexture1 }, new SecondarySpriteTexture() { name = "_SecondaryTexture2", texture = secondaryTexture2 }, new SecondarySpriteTexture() { name = "_SecondaryTexture3", texture = secondaryTexture3 } };
var sprite = Sprite.Create(texture, new Rect(0, 0, texture.width, texture.height), Vector2.zero, 100, 0, SpriteMeshType.FullRect, Vector4.zero, false, secondarySpriteTexture); int spriteSecondaryTextureCount = sprite.GetSecondaryTextureCount(); } }