Ejemplo n.º 1
0
        /// <summary>
        /// Change terrain layer settings.
        /// </summary>
        /// <param name="dataSource">The data source for the terrain height map.</param>
        /// <param name="elevationType">Mesh generation strategy for the tile/height.</param>
        /// <param name="enableCollider">Enable/Disable collider component for the tile game object.</param>
        /// <param name="factor">Multiplier for the height data.</param>
        /// <param name="layerId">Unity Layer for the tile game object.</param>
        public virtual void SetProperties(ElevationSourceType dataSource   = ElevationSourceType.MapboxTerrain,
                                          ElevationLayerType elevationType = ElevationLayerType.TerrainWithElevation,
                                          bool enableCollider = false,
                                          float factor        = 1,
                                          int layerId         = 0)
        {
            if (_layerProperty.sourceType != dataSource ||
                _layerProperty.elevationLayerType != elevationType)
            {
                _layerProperty.sourceType         = dataSource;
                _layerProperty.elevationLayerType = elevationType;
                _layerProperty.HasChanged         = true;
            }

            if (_layerProperty.colliderOptions.addCollider != enableCollider)
            {
                _layerProperty.colliderOptions.addCollider = enableCollider;
                _layerProperty.colliderOptions.HasChanged  = true;
            }

            if (_layerProperty.requiredOptions.exaggerationFactor != factor)
            {
                _layerProperty.requiredOptions.exaggerationFactor = factor;
                _layerProperty.requiredOptions.HasChanged         = true;
            }

            if (_layerProperty.unityLayerOptions.layerId != layerId)
            {
                _layerProperty.unityLayerOptions.layerId    = layerId;
                _layerProperty.unityLayerOptions.HasChanged = true;
            }
        }
Ejemplo n.º 2
0
 public void SetLayerSource(ElevationSourceType terrainSource)
 {
     if (terrainSource != ElevationSourceType.Custom && terrainSource != ElevationSourceType.None)
     {
         _layerProperty.sourceType = terrainSource;
         _layerProperty.sourceOptions.layerSource = MapboxDefaultElevation.GetParameters(terrainSource);
     }
     else
     {
         Debug.LogWarning("Invalid style - trying to set " + terrainSource.ToString() + " as default style!");
     }
 }
        public static Style GetParameters(ElevationSourceType defaultElevation)
        {
            Style defaultStyle = new Style();

            switch (defaultElevation)
            {
            case ElevationSourceType.MapboxTerrain:
                defaultStyle = new Style
                {
                    Id   = "mapbox.terrain-rgb",
                    Name = "Mapbox Terrain"
                };

                break;

            case ElevationSourceType.Custom:
                throw new Exception("Invalid type : Custom");

            default:
                break;
            }

            return(defaultStyle);
        }