public void OnGUI(ShaderInfo _info) { info = _info; if (info == null || info.variantInfo.keywords == null) { return; } GUILayout.Label("" + info.adbPath); GUILayout.Space(10); GUILayout.Label("变体数量:" + info.variantInfo.variantCount); GUILayout.Space(10); if (GUILayout.Button("Update", GUILayout.Width(220))) { var newSkips = info.variantInfo.NewSkips(); ShaderTextProcess.AddKeywords(info.path, newSkips); AssetDatabase.ImportAsset(info.adbPath); info.variantInfo.Refresh(); } scrollPos = GUILayout.BeginScrollView(scrollPos); for (int i = 0; i < info.variantInfo.keywords.Count; i++) { GUILayout.BeginHorizontal(); GUILayout.Label(info.variantInfo.keywords [i], GUILayout.Width(200)); info.variantInfo.keywordsIfSkip [i] = GUILayout.Toggle(info.variantInfo.keywordsIfSkip [i], "", GUILayout.Width(60)); GUILayout.EndHorizontal(); } GUILayout.EndScrollView(); }
public void Refresh() { keywords = ShaderUtilHelper.ShaderGetAllKeywords(info.shader); variantCount = ShaderUtilHelper.GetVariantCount(info.shader, true); skips = ShaderTextProcess.GetAllKeywordsInclude(info.path); for (int i = 0; i < skips.Count; i++) { var word = skips [i]; if (!keywords.Contains(word)) { keywords.Add(word); } } keywords.Sort(); keywordsIfSkip.Clear(); for (int i = 0; i < keywords.Count; i++) { var word = keywords [i]; keywordsIfSkip.Add(skips.Contains(word)); } }