public void ApplyMaterialProperties_TextureScale()
        {
            SketchMaterialData data = new SketchMaterialData();

            data.Shader   = SketchMaterialData.ShaderType.Standard;
            data.UVTiling = new Vector2(2, 5);

            Material material = Defaults.GetMaterial(data.Shader);

            data.ApplyMaterialProperties(material, null);
            Assert.AreEqual(new Vector2(2, 5), material.GetTextureScale("_MainTex"));
        }
        public void ApplyMaterialProperties_Metallic()
        {
            SketchMaterialData data = new SketchMaterialData();

            data.Shader        = SketchMaterialData.ShaderType.Standard;
            data.MetallicValue = .567f;

            Material material = Defaults.GetMaterial(data.Shader);

            data.ApplyMaterialProperties(material, null);
            Assert.AreEqual(.567f, material.GetFloat("_Metallic"));
        }
        public void ApplyMaterialProperties_TwoSided_AlbedoColor()
        {
            SketchMaterialData data = new SketchMaterialData();

            data.Shader      = SketchMaterialData.ShaderType.TwoSided;
            data.AlbedoColor = Color.magenta;

            Material material = Defaults.GetMaterial(data.Shader);

            data.ApplyMaterialProperties(material, null);
            Assert.AreEqual(Color.magenta, material.GetColor("_Color"));
        }
        public void ApplyMaterialProperties_Smoothness()
        {
            SketchMaterialData data = new SketchMaterialData();

            data.Shader          = SketchMaterialData.ShaderType.Standard;
            data.SmoothnessValue = .567f;

            Material material = Defaults.GetMaterial(data.Shader);

            data.ApplyMaterialProperties(material, null);
            Assert.AreEqual(.567f, material.GetFloat("_Glossiness"));
            Assert.AreEqual(.567f, material.GetFloat("_GlossMapScale"));
        }
 /// <summary>
 /// Get a material with the properties of the material data applied.
 /// </summary>
 /// <remarks>Returns an existing material instance if an identical material was created before.</remarks>
 /// <param name="sketchMaterialData"></param>
 /// <returns></returns>
 public Material GetMaterialFromDictionary(SketchMaterialData sketchMaterialData)
 {
     if (MaterialsDict.ContainsKey(sketchMaterialData))
     {
         return(MaterialsDict[sketchMaterialData]);
     }
     else
     {
         Material material = GetMaterial(sketchMaterialData.Shader);
         sketchMaterialData.ApplyMaterialProperties(material, DefaultTextureDirectory);
         MaterialsDict.Add(sketchMaterialData, material);
         return(material);
     }
 }