【发布时间】:2023-03-23 08:57:01
【问题描述】:
您好,感谢您的阅读。 我正在关注 2048 教程,他正在为他的瓷砖使用文本/颜色。我正在使用图片。
他对tiles应用不同样式时的代码如下:
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;
}
}
我的Tile代码如下:
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;
然后它不会抛出错误,但它也不会在合并后将 tile 样式从 2 更改为 4。它保持为 2,并且不会引发错误。
请帮忙,我现在知道如何将图像转换为数组中的下一个图像。
【问题讨论】:
标签: c# unity3d game-development