public static Material NewMaterialPersistent(Shader shader, bool gpuInstanced) { if (!shader) { Debug.LogError("Invalid VLB Shader. Please try to reset the VLB Config asset or reinstall the plugin."); return(null); } var material = new Material(shader); BatchingHelper.SetMaterialProperties(material, gpuInstanced); return(material); }
string GetBatchingReport() { if (m_Targets.Count > 1) { string reasons = ""; for (int i = 1; i < m_Targets.Count; ++i) { if (!BatchingHelper.CanBeBatched(m_Targets[0], m_Targets[i], ref reasons)) { return("Selected beams can't be batched together:\n" + reasons); } } } return(null); }
/// <summary> /// Create a dummy material with the proper instancing flag to prevent from stripping away needed shader variants when exporting build /// </summary> public static Material Create(Shader shader, bool gpuInstanced) { if (shader == null) { return(null); } string path = GetPath(shader); var dummyMat = AssetDatabase.LoadAssetAtPath <Material>(path); if (dummyMat == null || dummyMat.shader != shader || BatchingHelper.IsGpuInstancingEnabled(dummyMat) != gpuInstanced) { dummyMat = MaterialManager.NewMaterialPersistent(shader, gpuInstanced); if (dummyMat) { AssetDatabase.CreateAsset(dummyMat, path); } } return(dummyMat); }