我正在遵循 2048 教程,他正在為他的瓷磚使用文本/顏色。我正在使用圖像。在對(duì)圖塊應(yīng)用不同的樣式時(shí),他的代碼如下:TileText.text = TileStyleHolder.Instance.TileStyles [index].Number;TileText.color = TileStyleHolder.Instance.TileStyles[index].TextColor;TileImage.color = TileStyleHolder.Instance.TileStyles [index].Tilecolor;我的風(fēng)格保持器代碼如下: [System.Serializable] public class TileStyle {public Sprite tile_number;}public class TileStyleHolder : MonoBehaviour{//SINGLETONpublic 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;}它拋出錯(cuò)誤: 'Sprite' does not contain a definition for 'image' and no accessible extension method 但是,如果我使用這行代碼: tile_number = TileStyleHolder.Instance.TileStyles[index].tile_number;然后它不會(huì)拋出錯(cuò)誤,但也不會(huì)在合并后將磁貼樣式從 2 更改為 4。它保持為 2,并且不會(huì)拋出錯(cuò)誤。請(qǐng)幫忙,我現(xiàn)在知道如何將圖像轉(zhuǎn)換為數(shù)組中的下一個(gè)圖像。
1 回答

子衿沉夜
TA貢獻(xiàn)1828條經(jīng)驗(yàn) 獲得超3個(gè)贊
tile_number
是指向 .Sprite
Sprite
不包含名為 的成員,所以這就是出現(xiàn)該錯(cuò)誤的原因。sprite
現(xiàn)在當(dāng)你這樣做時(shí),你只是改變指針(即 )指向其他東西,它之前指向的東西不會(huì)改變。tile_number = something;
tile_number
如果你看一下?Sprite API,你會(huì)看到它有一個(gè)名為 .這就是你想改變的人。texture
所以,需要明確的是,當(dāng)你這樣做時(shí),是一個(gè)指向 Sprite 對(duì)象的指針,這個(gè)對(duì)象有一個(gè)叫做的成員,你把它改成了 。這與告訴你的指針指向其他精靈有很大不同。tile_number.texture = foo.bar.some_texture
tile_number
texture
foo.bar.some_texture
tile_number
我假設(shè)的類型是 ,您的代碼似乎表明了這一點(diǎn)。tile_number
Sprite
- 1 回答
- 0 關(guān)注
- 332 瀏覽
添加回答
舉報(bào)
0/150
提交
取消