void Update() { for (int i = 0; i < dst.Length; i++) { MKXRayFreeMaterialHelper.SetEmissionColor(dst[i], MKXRayFreeMaterialHelper.GetEmissionColor(src)); MKXRayFreeMaterialHelper.SetXRayInside(dst[i], MKXRayFreeMaterialHelper.GetXRayInside(src)); MKXRayFreeMaterialHelper.SetXRayRimSize(dst[i], MKXRayFreeMaterialHelper.GetXRayRimSize(src)); } }
//Setup GI emission private void SetGIFlags() { foreach (Material obj in emissionColor.targets) { bool emissive = true; if (MKXRayFreeMaterialHelper.GetEmissionColor(obj) == Color.black) { emissive = false; } MaterialGlobalIlluminationFlags flags = obj.globalIlluminationFlags; if ((flags & (MaterialGlobalIlluminationFlags.BakedEmissive | MaterialGlobalIlluminationFlags.RealtimeEmissive)) != 0) { flags &= ~MaterialGlobalIlluminationFlags.EmissiveIsBlack; if (!emissive) { flags |= MaterialGlobalIlluminationFlags.EmissiveIsBlack; } obj.globalIlluminationFlags = flags; } } }
private void SetValuesFromMaterial() { emissionIntensity = MKXRayFreeMaterialHelper.GetEmissionColor(currentMaterials[currentModel]).r / 2.0f; xRayInside = MKXRayFreeMaterialHelper.GetXRayInside(currentMaterials[currentModel]); xRayRimSize = MKXRayFreeMaterialHelper.GetXRayRimSize(currentMaterials[currentModel]); }