public static HomeIconView Spawn(TrainSpawn spawn) { var prefab = Resources.Load <HomeIconView>("Prefabs/HomeIconView"); var instance = GameObject.Instantiate(prefab); instance.transform.position = TileViewUtil.GetPosition3D(spawn.X, spawn.Y); var colorSettings = GameSettings.Instance.GetColorSettings(spawn.Color); instance.GetComponentInChildren <MeshRenderer>().material.color = colorSettings.Color; return(instance); }
public ViewController(GameWorld gameWorld) { this.gameWorld = gameWorld; tileViewPrefab = Resources.Load <TileView>("Prefabs/TileView"); tile2View = new TileView[levelData.Width, levelData.Height]; for (var i = 0; i < levelData.Width; i++) { for (var j = 0; j < levelData.Height; j++) { var tile = gameWorld.GetTile(i, j); var tileView = TileView.CreateView(tile, tileViewPrefab); tile2View[i, j] = tileView; } } foreach (var train in gameWorld.AllTrains) { allTrainViews.Add(TrainView.CreateView(train)); } foreach (var trainSpawn in levelData.TrainSpawns) { HomeIconView.Spawn(trainSpawn); } foreach (var cargSpawner in gameWorld.AllCargoSpawners) { CargoIconsView.Create(cargSpawner); } var levelTextPrefab = Resources.Load <TextMeshPro>("Prefabs/LevelText"); foreach (var levelText in levelData.LevelTexts) { var levelTextInstance = Object.Instantiate(levelTextPrefab, TileViewUtil.GetPosition3D(levelText.X, levelText.Y), Quaternion.identity); levelTextInstance.text = levelText.Text; levelTextInstance.GetComponent <RectTransform>().sizeDelta = new Vector2(levelText.Width, levelText.Height); } }