namespace Mapbox.Unity.Map { using UnityEngine; using Mapbox.Unity.MeshGeneration.Data; public class SubLayerCustomStyleAtlasWithColorPallete : ISubLayerCustomStyleAtlasWithColorPallete { private GeometryMaterialOptions _materialOptions; public SubLayerCustomStyleAtlasWithColorPallete(GeometryMaterialOptions materialOptions) { _materialOptions = materialOptions; } public Material TopMaterial { get { return _materialOptions.materials[0].Materials[0]; } set { if (_materialOptions.materials[0].Materials[0] != value) { _materialOptions.materials[0].Materials[0] = value; _materialOptions.HasChanged = true; } } } public Material SideMaterial { get { return _materialOptions.materials[1].Materials[0]; } set { if (_materialOptions.materials[1].Materials[0] != value) { _materialOptions.materials[1].Materials[0] = value; _materialOptions.HasChanged = true; } } } public AtlasInfo UvAtlas { get { return _materialOptions.atlasInfo; } set { if (_materialOptions.atlasInfo != value) { _materialOptions.atlasInfo = value; _materialOptions.HasChanged = true; } } } public ScriptablePalette ColorPalette { get { return _materialOptions.colorPalette; } set { if (_materialOptions.colorPalette != value) { _materialOptions.colorPalette = value; _materialOptions.HasChanged = true; } } } public void SetAsStyle(Material topMaterial, Material sideMaterial, AtlasInfo uvAtlas, ScriptablePalette palette) { _materialOptions.texturingType = UvMapType.Atlas; _materialOptions.materials[0].Materials[0] = topMaterial; _materialOptions.materials[1].Materials[0] = sideMaterial; _materialOptions.atlasInfo = uvAtlas; _materialOptions.colorPalette = palette; _materialOptions.HasChanged = true; } public void SetAsStyle() { _materialOptions.SetDefaultAssets(UvMapType.AtlasWithColorPalette); _materialOptions.HasChanged = true; } } }