暂无描述
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

ValueUtilities.cs 1.8KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
  1. using System;
  2. using UnityEditor.ShaderGraph.Internal;
  3. namespace UnityEditor.ShaderGraph
  4. {
  5. static class ValueUtilities
  6. {
  7. public static string ToShaderString(this ShaderValueType type, string precisionToken = PrecisionUtil.Token)
  8. {
  9. switch (type)
  10. {
  11. case ShaderValueType.Boolean:
  12. return precisionToken;
  13. case ShaderValueType.Float:
  14. return precisionToken;
  15. case ShaderValueType.Float2:
  16. return $"{precisionToken}2";
  17. case ShaderValueType.Float3:
  18. return $"{precisionToken}3";
  19. case ShaderValueType.Float4:
  20. return $"{precisionToken}4";
  21. case ShaderValueType.Matrix2:
  22. return $"{precisionToken}2x2";
  23. case ShaderValueType.Matrix3:
  24. return $"{precisionToken}3x3";
  25. case ShaderValueType.Matrix4:
  26. return $"{precisionToken}4x4";
  27. case ShaderValueType.Integer:
  28. return "int";
  29. case ShaderValueType.Uint:
  30. return "uint";
  31. case ShaderValueType.Uint4:
  32. return "uint4";
  33. default:
  34. return "Error";
  35. }
  36. }
  37. public static int GetVectorCount(this ShaderValueType type)
  38. {
  39. switch (type)
  40. {
  41. case ShaderValueType.Float:
  42. return 1;
  43. case ShaderValueType.Float2:
  44. return 2;
  45. case ShaderValueType.Float3:
  46. return 3;
  47. case ShaderValueType.Float4:
  48. return 4;
  49. default:
  50. return 0;
  51. }
  52. }
  53. }
  54. }