private GridObjectConfig GetObjectConfigByName(string configName) { GridObjectConfig gridObjectConfig = null; foreach (GridObjectConfig config in gridObjectConfigs) { if (config.Name == configName) { return(config); } } return(gridObjectConfig); }
public void Initialize(GridObjectConfig gridObjectConfig, Vector2 position, PropertyDict objectProperties) { Properties = objectProperties; config = gridObjectConfig; transform.position = position; Player player = GetComponent <Player>(); if (player != null) { GameManager.main.SetupPlayer(player); } spriteRenderer = GetComponent <SpriteRenderer>(); if (spriteRenderer != null) { spriteRenderer.sortingOrder = -((int)Math.Floor(transform.position.y) * 2); } }
private void SpawnObject(int x, int y, TmxObject tmxObject, Transform container) { if (tmxObject.Tile != null) { Sprite sprite = GetTileSprite(tmxObject.Tile.Gid); GridObjectConfig objectConfig = GetObjectConfigByName(tmxObject.Type); if (objectConfig == null || objectConfig.Prefab == null) { Debug.Log(string.Format("No object config found or no prefab set for {0}", tmxObject.Type)); return; } GridObject newObject = Instantiate(objectConfig.Prefab, container); Vector2 tileSetSize = tiledMapTilesetManager.GetTileSetSize(tmxObject.Tile.Gid); Vector2 objectPosition = new Vector2( x / tileSetSize.x, y / tileSetSize.y + 1 // unity position starts at bottom ); newObject.Initialize(objectConfig, objectPosition, tmxObject.Properties); GridObjectManager.main.AddGridObject(newObject); } }