SCMaterial.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. using UnityEngine;
  2. using System.Collections.Generic;
  3. namespace ShaderControl {
  4. public class SCMaterial {
  5. public Material unityMaterial;
  6. public string path = "";
  7. public string GUID = "";
  8. public List<SCKeyword> keywords = new List<SCKeyword> ();
  9. public bool pendingChanges;
  10. public bool foldout;
  11. HashSet<string> keywordSet = new HashSet<string>();
  12. public SCMaterial (Material material, string path, string GUID) {
  13. this.unityMaterial = material;
  14. this.path = path;
  15. this.GUID = GUID;
  16. }
  17. public void SetKeywords(string[] names) {
  18. for (int k=0;k<names.Length;k++) {
  19. if (!keywordSet.Contains(names[k])) {
  20. keywordSet.Add (names[k]);
  21. SCKeyword keyword = new SCKeyword(names[k]);
  22. keywords.Add (keyword);
  23. }
  24. }
  25. keywords.Sort(delegate(SCKeyword k1, SCKeyword k2) { return k1.name.CompareTo(k2.name); });
  26. }
  27. public bool ContainsKeyword(string name) {
  28. return keywordSet.Contains(name);
  29. }
  30. public void RemoveKeyword(string name) {
  31. for (int k=0;k<keywords.Count;k++) {
  32. if (keywords[k].name.Equals(name)) {
  33. keywords.RemoveAt(k);
  34. return;
  35. }
  36. }
  37. }
  38. }
  39. }