为什么检查员中没有变量显示

时间:2018-03-30 01:08:03

标签: c# unity3d

尝试在Unity中制作Tile系统。我已经完成了我的tile类,但是当我在TileManager类中创建一个列表时,它让我可以选择更改列表的大小,但是给我一个没有可变变量的空元素。

瓷砖类:

public class Tile : MonoBehaviour
{

public Sprite tileSprite;
public string tileName;
public int tileID;

public Tile(Sprite newTileSprite, string newTileName, int newTileID) 
{
    tileSprite = newTileSprite;
    tileName = newTileName;
    tileID = newTileID;
}

void Start()
{
    SpriteRenderer spriteRenderer = gameObject.GetComponent(typeof(SpriteRenderer)) as SpriteRenderer;

    if (spriteRenderer != null) spriteRenderer.sprite = tileSprite;
}

TileManager类:

public class TileManager : MonoBehaviour {

public List<Tile> Tiles;
// Use this for initialization
void Start () 
{

}

// Update is called once per frame
void Update () {

}
}

1 个答案:

答案 0 :(得分:3)

在Tile类上使用System.Serializable属性。还要确保Tile类不从MonoBehaviour继承,否则它仍然不会出现在检查器列表中。

[System.Serializable]
public class Tile 
{
   public Sprite tileSprite;
   public string tileName;
   public int tileID;

   public Tile(Sprite newTileSprite, string newTileName, int newTileID) 
   {
       tileSprite = newTileSprite;
       tileName = newTileName;
       tileID = newTileID;
   }
}