public static void UpgradeMaterials(Material[] materials, RampUpgradeOptions type = RampUpgradeOptions.CopyFromDirectional, Texture2D pointRampTexture = null) { // IDs var directionalTexId = Shader.PropertyToID("_ToonTex"); var pointTexId = Shader.PropertyToID("_ToonPointLightTex"); // configs bool isCopyFromDir = (type & RampUpgradeOptions.CopyFromDirectional) != 0; bool isAsync = (type & RampUpgradeOptions.Asynchronously) != 0; for (int i = 0; i != materials.Length; ++i) { var it = materials[i]; it.SetTexture( pointTexId, isCopyFromDir ? it.GetTexture(directionalTexId) : pointRampTexture ); if (isAsync) { EditorUtility.DisplayProgressBar( "Upgrading Mateials", string.Format("({0}/{1}){2}", i + 1, materials.Length, it.name), (float)i / (float)materials.Length ); } } if (isAsync) { EditorUtility.ClearProgressBar(); } }
public static void UpgradeMaterials(ScheduledMaterial[] scheduledMaterials, RampUpgradeOptions options = RampUpgradeOptions.CopyFromDirectional, Texture2D pointRampTexture = null) { var materials = scheduledMaterials .Where((it) => it.isScheduled) .Select((it) => it.material) .ToArray() ; UpgradeMaterials(materials, options, pointRampTexture); }