private void CreateUnitController(VoxelData voxelData, Coordinate coordinate)
        {
            voxelData.UnitOrAssetIndex = m_identity;

            IMatchUnitControllerCli unit = MatchFactoryCli.CreateUnitController(m_voxelMap.Map, coordinate, voxelData.Type, m_playerIndex, m_allAbilities);

            if (VoxelData.IsControllableUnit(voxelData.Type))
            {
                m_controllableUnitsCount++;
            }

            m_idToUnit.Add(m_identity, unit);

            int radius = unit.DataController.Abilities.VisionRadius;

            m_voxelMap.Map.ForEachInRadius(coordinate, radius, (observedCell, pos) =>
            {
                ObserveCell(unit.DataController.ControlledData.Owner, observedCell, pos, coordinate.Weight);
            });

            m_minimap.Spawn(voxelData, coordinate);

            unchecked
            {
                m_identity++;
            }

            if (UnitCreated != null)
            {
                UnitCreated(unit);
            }
        }