123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475 |
- using UnityEngine;
- using System.Collections;
- using System.Collections.Generic;
- using System;
- namespace DigitalOpus.MB.Core
- {
- public class TextureBlenderLegacyBumpDiffuse : TextureBlender
- {
- bool doColor;
- Color m_tintColor;
- Color m_defaultTintColor = Color.white;
-
- public bool DoesShaderNameMatch(string shaderName)
- {
- if (shaderName.Equals ("Legacy Shaders/Bumped Diffuse")) {
- return true;
- } else if (shaderName.Equals ("Bumped Diffuse")) {
- return true;
- }
- return false;
- }
- public void OnBeforeTintTexture(Material sourceMat, string shaderTexturePropertyName)
- {
- if (shaderTexturePropertyName.EndsWith("_MainTex"))
- {
- doColor = true;
- m_tintColor = sourceMat.GetColor("_Color");
- } else
- {
- doColor = false;
- }
- }
- public Color OnBlendTexturePixel(string propertyToDoshaderPropertyName, Color pixelColor)
- {
- if (doColor)
- {
- return new Color(pixelColor.r * m_tintColor.r, pixelColor.g * m_tintColor.g, pixelColor.b * m_tintColor.b, pixelColor.a * m_tintColor.a);
- }
- return pixelColor;
- }
- public bool NonTexturePropertiesAreEqual(Material a, Material b)
- {
- return TextureBlenderFallback._compareColor(a, b, m_defaultTintColor, "_Color");
- }
- public void SetNonTexturePropertyValuesOnResultMaterial(Material resultMaterial)
- {
- resultMaterial.SetColor("_Color", Color.white);
- }
- public Color GetColorIfNoTexture(Material m, ShaderTextureProperty texPropertyName)
- {
- if (texPropertyName.name.Equals("_BumpMap"))
- {
- return new Color(.5f, .5f, 1f);
- }
- if (texPropertyName.name.Equals("_MainTex"))
- {
- if (m != null && m.HasProperty("_Color"))
- {
- try
- { //need try because can't garantee _Color is a color
- return m.GetColor("_Color");
- }
- catch (Exception) { }
- }
- }
- return new Color(1,1,1,0);
- }
- }
- }
|