private void RefreshTiles() { foreach (Transform child in _contentArea.transform) { Destroy(child.gameObject); } BuildingModel[] models = SharedModels.GetModels <BuildingModel>(); foreach (var model in models) { var asset = Instantiate(ElementTemplate); var tile = asset.GetComponent <TileView>(); Assert.IsNotNull(tile, "ElementTemplate does not contain a ColorTileView script"); tile.transform.SetParent(_contentArea, false); tile.ContentModel = model; tile.TileSelectedEvent += OnItemSelected; //tile.TileEnableEvent += (itile, go) => Debug.Log(go.name + " enabled: " + itile.IsEnabled); tile.AvailabilityDelegate = (tileModel) => { BuildingModel buildingModel = tileModel as BuildingModel; int buildingsNumber = _gridModel.FindAll(buildingModel).Length; return(buildingsNumber < buildingModel.MaxNumber); }; } }