public ParticleUpdaterV1(string shaderName) { if (shaderName == null) { throw new ArgumentNullException("oldShaderName"); } RenameShader(shaderName, shaderName, ParticleUpgrader.UpdateSurfaceBlendModes); RenameTexture("_MainTex", "_BaseMap"); RenameColor("_Color", "_BaseColor"); RenameFloat("_FlipbookMode", "_FlipbookBlending"); switch (ShaderUtils.GetEnumFromPath(shaderName)) { case ShaderPathID.ParticlesLit: RenameFloat("_Glossiness", "_Smoothness"); break; case ShaderPathID.ParticlesSimpleLit: RenameFloat("_Glossiness", "_Smoothness"); break; case ShaderPathID.ParticlesUnlit: break; } }
static void OnPostprocessAllAssets(string[] importedAssets, string[] deletedAssets, string[] movedAssets, string[] movedFromAssetPaths) { var upgradeLog = "UniversalRP Material log:"; var upgradeCount = 0; foreach (var asset in importedAssets) { if (!asset.ToLowerInvariant().EndsWith(".mat")) { continue; } var material = (Material)AssetDatabase.LoadAssetAtPath(asset, typeof(Material)); if (!ShaderUtils.IsLWShader(material.shader)) { continue; } ShaderPathID id = ShaderUtils.GetEnumFromPath(material.shader.name); var wasUpgraded = false; var assetVersions = AssetDatabase.LoadAllAssetsAtPath(asset); AssetVersion assetVersion = null; foreach (var subAsset in assetVersions) { if (subAsset.GetType() == typeof(AssetVersion)) { assetVersion = subAsset as AssetVersion; } } var debug = "\n" + material.name; if (!assetVersion) { wasUpgraded = true; assetVersion = ScriptableObject.CreateInstance <AssetVersion>(); if (s_CreatedAssets.Contains(asset)) { assetVersion.version = k_Upgraders.Length; s_CreatedAssets.Remove(asset); InitializeLatest(material, id); } else { assetVersion.version = 0; } assetVersion.hideFlags = HideFlags.HideInHierarchy | HideFlags.HideInInspector | HideFlags.NotEditable; AssetDatabase.AddObjectToAsset(assetVersion, asset); debug += " initialized."; } while (assetVersion.version < k_Upgraders.Length) { k_Upgraders[assetVersion.version](material, id); debug += $" upgrading:v{assetVersion.version} to v{assetVersion.version + 1}"; assetVersion.version++; wasUpgraded = true; } if (wasUpgraded) { upgradeLog += debug; upgradeCount++; EditorUtility.SetDirty(assetVersion); s_ImportedAssetThatNeedSaving.Add(asset); s_NeedsSavingAssets = true; } } }