Version: 2022.3

Sprite.GetSecondaryTextures

切换到手册
public int GetSecondaryTextures (SecondarySpriteTexture[] secondaryTexture);

参数

secondaryTexture The array of SecondarySpriteTexture to contain the Secondary Textures properties used by the Sprite.

返回

int Returns the number of Secondary Textures properties retrieved.

描述

Retrieves an array of SecondarySpriteTexture used by the Sprite.

If the size of the arrays passed in as parameters are less than the number of SecondarySpriteTexture used by the Sprite, the arrays will not be resized and the results will be limited.

If the size of the arrays passed in as parameters are bigger than the number of SecondarySpriteTexture used by the Sprite, the number of elements used in the array will be indicated byt the return value of the method.

using UnityEngine;

// Create a Sprite with Secondary Texture properties and retrieves the // Secondary Texture properties with various input parameter array length.

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); var secondarySpriteTextureResult = new SecondarySpriteTexture[2]; var resultCount = sprite.GetSecondaryTextures(secondarySpriteTextureResult); // There are 3 Secondary Textures, but the array is only size of 2, so the entire array is used print(resultCount); for (var i = 0; i < resultCount; ++i) { // This will print //_SecondaryTexture1 //_SecondaryTexture2 print(secondarySpriteTextureResult[i].name); }

secondarySpriteTextureResult = new SecondarySpriteTexture[4]; resultCount = sprite.GetSecondaryTextures(secondarySpriteTextureResult); // There are 3 Secondary Textures, but the array is only size of 4, so only 3 will be used print(resultCount); for (var i = 0; i < resultCount; ++i) { // This will print //_SecondaryTexture1 //_SecondaryTexture2 //_SecondaryTexture3 print(secondarySpriteTextureResult[i].name); } } }