Здравствуйте, спасибо за чтение. Я следую учебнику 2048 года, и он использует текст / цвет для своих плиток. Я использую изображение.
При применении различных стилей к плиткам его код выглядит следующим образом:
TileText.text = TileStyleHolder.Instance.TileStyles [index].Number;
TileText.color = TileStyleHolder.Instance.TileStyles[index].TextColor;
TileImage.color = TileStyleHolder.Instance.TileStyles [index].Tilecolor;
Код моего держателя стиля следующий:
[System.Serializable]
public class TileStyle
{
public Sprite tile_number;
}
public class TileStyleHolder : MonoBehaviour
{
//SINGLETON
public static TileStyleHolder Instance;
public TileStyle[] TileStyles;
void Awake()
{
Instance = this;
}
}
мой код тайла выглядит следующим образом:
public class Tile : MonoBehaviour
{
public bool mergedThisTurn = false;
public int indRow;
public int indCol;
public int Number
{
get
{
return number;
}
set
{
number = value;
if (number == 0)
SetEmpty();
else
{
ApplyStyle(number);
SetVisible();
}
}
}
//private SpriteRenderer spriteRenderer;
private Sprite tile_number;
private int number;
void Awake()
{
Sprite tile_number = GetComponentInChildren<Image>.sprite ();
}
void ApplyStyleFromHolder(int index)
{
tile_number.image = TileStyleHolder.Instance.TileStyles[index].tile_number;
}
И выдает ошибку:
'Sprite' does not contain a definition for 'image' and no accessible extension method
Однако, если я использую эту строку кода:
tile_number = TileStyleHolder.Instance.TileStyles[index].tile_number;
Тогда он не выдаст ошибку, но также не изменит стиль плитки с 2 на 4 после объединения. Он остается как 2 и не выдает ошибку.
Пожалуйста, помогите, теперь я знаю, как преобразовать изображение в следующее изображение в массиве.