private Material RestoreRenderMaterial(Material material, string name, agxCollide.RenderMaterial nativeMaterial) { return(FileInfo.ObjectDb.GetOrCreateAsset(material, Shader.Find("Standard") ?? Shader.Find("Diffuse"), name, m => RestoreLocalDataFrom(m, nativeMaterial))); }
private static void RestoreLocalDataFrom(Material thisMaterial, agxCollide.RenderMaterial nativeMaterial) { if (nativeMaterial.hasDiffuseColor()) { var color = nativeMaterial.getDiffuseColor().ToColor(); color.a = 1.0f - nativeMaterial.getTransparency(); thisMaterial.SetVector("_Color", color); } if (nativeMaterial.hasEmissiveColor()) { thisMaterial.SetVector("_EmissionColor", nativeMaterial.getEmissiveColor().ToColor()); } thisMaterial.SetFloat("_Metallic", 0.3f); thisMaterial.SetFloat("_Glossiness", 0.8f); if (nativeMaterial.getTransparency() > 0.0f) { thisMaterial.SetBlendMode(BlendMode.Transparent); } }