Exemple #1
0
            AtlasPage GetAtlasPageWithMaterial(AtlasPage originalPage, Material materialTemplate)
            {
                if (originalPage == null)
                {
                    throw new ArgumentNullException("originalPage");
                }

                AtlasPage newPage = null;
                var       key     = new KeyValuePair <AtlasPage, Material>(originalPage, materialTemplate);

                cache.TryGetValue(key, out newPage);

                if (newPage == null)
                {
                    newPage = originalPage.Clone();
                    var originalMaterial = originalPage.rendererObject as Material;
                    newPage.rendererObject = new Material(materialTemplate)
                    {
                        name        = originalMaterial.name + " " + materialTemplate.name,
                        mainTexture = originalMaterial.mainTexture
                    };
                    cache.Add(key, newPage);
                }

                return(newPage);
            }
Exemple #2
0
        protected AtlasRegion CloneAtlasRegionWithMaterial(AtlasRegion originalRegion, List <ReplacementMaterial> replacementMaterials)
        {
            var      newRegion = originalRegion.Clone();
            Material material  = null;

            foreach (var replacement in replacementMaterials)
            {
                if (replacement.pageName == originalRegion.page.name)
                {
                    material = replacement.material;
                    break;
                }
            }

            AtlasPage originalPage = originalRegion.page;
            var       newPage      = originalPage.Clone();

            newPage.rendererObject = material;
            newRegion.page         = newPage;
            return(newRegion);
        }