public static TerrainLayer createTerrainLayer(Material mat, float tiling) { TerrainLayer terrainLayer = new TerrainLayer(); string path = AssetDatabase.GetAssetPath(mat); path = path.Replace(".mat", ".terrainlayer"); AssetDatabase.CreateAsset(terrainLayer, path); AssetDatabase.Refresh(); terrainLayer.diffuseTexture = (Texture2D)mat.mainTexture; //attempt to auto-detect a settings file for Lightweight or HD pipelines switch (MegascansUtilities.getCurrentPipeline()) { case Pipeline.HDRP: terrainLayer.normalMapTexture = (Texture2D)mat.GetTexture("_NormalMap"); if (mat.GetFloat("_MaterialID") == 4) { terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_SpecularColorMap"); terrainLayer.metallic = 1.0f; } else if (mat.GetFloat("_MaterialID") == 1) { terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_MaskMap"); terrainLayer.specular = new Color(1.0f, 1.0f, 1.0f); } break; case Pipeline.LWRP: terrainLayer.normalMapTexture = (Texture2D)mat.GetTexture("_BumpMap"); if (mat.GetFloat("_WorkflowMode") == 1) { terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_MetallicGlossMap"); terrainLayer.specular = new Color(1.0f, 1.0f, 1.0f); } else { terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_SpecGlossMap"); terrainLayer.metallic = 1.0f; } break; case Pipeline.Standard: terrainLayer.normalMapTexture = (Texture2D)mat.GetTexture("_BumpMap"); if (mat.shader.ToString() == "Standard (Specular setup)") { terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_SpecGlossMap"); terrainLayer.metallic = 1.0f; } else { terrainLayer.maskMapTexture = (Texture2D)mat.GetTexture("_MetallicGlossMap"); terrainLayer.specular = new Color(1.0f, 1.0f, 1.0f); } break; } terrainLayer.tileSize = new Vector2(tiling, tiling); return(terrainLayer); }
/// <summary> /// This function attempts to auto-detect which template the project is using. Defaults to Legacy/Standard if all else fails. /// </summary> void GetShaderType() { shaderType = EditorPrefs.GetInt("QuixelDefaultShader"); if (shaderType == 3) { //attempt to auto-detect a settings file for Lightweight or HD pipelines switch (MegascansUtilities.getCurrentPipeline()) { case Pipeline.HDRP: shaderType = 0; break; case Pipeline.LWRP: shaderType = 1; break; case Pipeline.Standard: shaderType = 2; break; default: shaderType = 2; break; } } }