public void RefreshMapUnits() { var mapUnits = objectTileMap.GetComponentsInChildren <GameUnit>(); if (mapUnits.Any()) { foreach (var unit in mapUnits) { // Add the unit to our list of units and objects on this map if (!MapUnits.Contains(unit)) { MapUnits.Add(unit); } if (!MapObjects.Contains(unit)) { MapObjects.Add(unit); } // And make sure it's Map X/Y coordinates are corred in our grid var unitPosition = objectTileMap.WorldToCell(unit.transform.position); var gridPosition = objectTileMap.CellToWorld(unitPosition); unit.transform.position = gridPosition; TranslateUnityXYToMapXY(unitPosition, out var unitMapX, out var unitMapY); unit.MapX = unitMapX; unit.MapY = unitMapY; } } }
public void RemoveMapUnit(IGameMapObject mapObject) { if (MapObjects.Contains(mapObject)) { MapObjects.Remove(mapObject); mapObject.WorldPosition = new Vector3(-100, -100, -100); } }