Я новичок в изучении разработки игр Unity3d, у меня есть один GameObject, так называемый GameManager, и GameManager.cs добавлен к нему. Как это:GetComponent Null
надреза из GameManager.cs, я получил нулевой исключение, когда я бегу:
public void DisplayTileGrid() {
tiles = new List<MatchItem>();
for (int x = 0; x < TileData.tileWidth; x++) {
for (int y = 0; y < TileData.tileHeight; y++) {
int type = (int)cells[x, y].cellType;
string spriteName = sprites[type - 1];
GameObject instance = NGUITools.AddChild(grid, matchItemPrefab) as GameObject;
instance.GetComponent<UISprite>().spriteName = spriteName;
instance.transform.localScale = Vector3.one * cellScale;
instance.transform.localPosition = new Vector3(x * cellWidth, y * -cellHeight, 0f);
MatchItem tile = instance.GetComponent<MatchItem>();
tile.target = gameObject;
tile.cell = cells[x, y];
tile.point = new TilePoint(x, y);
tiles.Add(tile);
}
}
}
Кажется, это не удалось добавить свой matchItemPrefab здесь:
GameObject instance = NGUITools.AddChild(grid, matchItemPrefab) as GameObject;
, и instance.GetComponent() возвращен null.
Почему объект экземпляра не имеет MatchItem? Может ли кто-нибудь помочь?
Просто будьте осторожны, с сохранением префатов, это немного странно в единстве. В некоторых случаях вам нужно использовать «Сохранить проект», чтобы действительно сохранить изменения с префава на диск. – d4Rk
Если это был ответ, отметьте его как решенный, поэтому вопрос будет сделан! ;) –