예제 #1
0
    public void Remove(GridMapLayer layer)
    {
        mapLayers.Remove(layer);
        layer.Grid.patch.SetMapLayer(null);

        // If it's the last patch then remove the data layer
        var dataLayer = layer.Grid.patch.DataLayer;

        if (!dataLayer.HasLoadedPatchesInView())
        {
            visibleDataLayers.Remove(dataLayer);
        }

        OnShowGrid?.Invoke(layer, false);

        Destroy(layer.gameObject);

        ArrangeLayers();
    }
예제 #2
0
    public void Add(GridMapLayer layer, GridData grid)
    {
        layer.Init(map, grid);

#if UNITY_EDITOR
        layer.name = grid.patch.DataLayer.Name;
        if (!string.IsNullOrWhiteSpace(grid.patch.Filename))
        {
            layer.name += Patch.GetFileNamePatch(grid.patch.Filename);
        }
#endif

        var dataLayer = grid.patch.DataLayer;
        layer.SetColor(dataLayer.Color);
        layer.transform.SetParent(transform, false);

        mapLayers.Add(layer);
        grid.patch.SetMapLayer(layer);

        if (!visibleDataLayers.Contains(dataLayer))
        {
            visibleDataLayers.Add(dataLayer);
        }

        OnShowGrid?.Invoke(layer, true);

        ArrangeLayers();

        if (GridMapLayer.ManualGammaCorrection)
        {
            layer.SetGamma(gamma);
        }
        else
        {
            UpdateGamma(layer);
        }
    }