private void ShowShaderWithProperties(ShaderDefaultMap shaderDefaultMap) { GUIStyle oldReferenceStyle = "CN StatusWarn"; //EditorGUILayout.LabelField(shaderDefaultMap.shader.name + " (" + shaderDefaultMap.shaderAssetBundleName + ")"); GUILayout.BeginHorizontal(); EditorGUILayout.ObjectField("Shader", shaderDefaultMap.shader, typeof(Shader), false); EditorGUILayout.LabelField(shaderDefaultMap.assetBundleName); GUILayout.EndHorizontal(); EditorGUI.indentLevel++; { foreach (var prop in shaderDefaultMap.properties) { //EditorGUILayout.LabelField(prop.propertyName, prop.texture.name + " (" + prop.textureAssetBundleName + ")"); GUILayout.BeginHorizontal(); EditorGUILayout.ObjectField("Texture", prop.texture, typeof(Texture), false, GUILayout.MaxHeight(16f)); if (prop.assetBundleName != shaderDefaultMap.assetBundleName) { EditorGUILayout.LabelField(prop.assetBundleName, oldReferenceStyle); } else { EditorGUILayout.LabelField(prop.assetBundleName); } GUILayout.EndHorizontal(); } } EditorGUI.indentLevel--; EditorGUILayout.Space(); }
private void UpdateShaderMap() { int shadersWithDefaultMapCount = 0; m_shadersWithDefaultMap.Clear(); StringBuilder report = new StringBuilder(); string[] assetGUIDs = AssetDatabase.FindAssets("t:shader"); Debug.Log("Found shaders: " + assetGUIDs.Length); foreach (var assetGUID in assetGUIDs) { var assetPath = AssetDatabase.GUIDToAssetPath(assetGUID); var importer = AssetImporter.GetAtPath(assetPath); ShaderImporter shaderImporter = importer as ShaderImporter; List <TextureProp> properties = new List <TextureProp>(); GetProperties(ref properties, shaderImporter); StringBuilder sb = new StringBuilder(); sb.AppendLine("Shader: " + assetPath + " (bundle: " + importer.assetBundleName + ")"); bool hasDefaultMap = false; ShaderDefaultMap sdm = new ShaderDefaultMap(); sdm.shader = shaderImporter.GetShader(); sdm.assetBundleName = importer.assetBundleName; sdm.properties = new List <TextureProp>(); // Walk through shader's textures and see if it's in the same asset bundle for (int i = 0; i < properties.Count; ++i) { var prop = properties[i]; if (prop.texture != null) { sdm.properties.Add(prop); hasDefaultMap = true; sb.AppendLine("\t" + prop.propertyName + ", " + prop.texture.name + " (bundle: " + prop.assetBundleName + ")"); } } if (hasDefaultMap) { m_shadersWithDefaultMap.Add(sdm); report.AppendLine(sb.ToString()); ++shadersWithDefaultMapCount; } } //Debug.Log(report.ToString()); //Debug.LogWarning("Shaders with Default Map: " + shadersWithDefaultMapCount); }