Ingen beskrivning
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

BooleanShaderProperty.cs 1.9KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. using System;
  2. using System.Text;
  3. using UnityEditor.Graphing;
  4. using UnityEditor.ShaderGraph.Drawing.Controls;
  5. using UnityEngine;
  6. namespace UnityEditor.ShaderGraph.Internal
  7. {
  8. [Serializable]
  9. [FormerName("UnityEditor.ShaderGraph.BooleanShaderProperty")]
  10. [BlackboardInputInfo(20)]
  11. public sealed class BooleanShaderProperty : AbstractShaderProperty<bool>
  12. {
  13. internal BooleanShaderProperty()
  14. {
  15. displayName = "Boolean";
  16. }
  17. public override PropertyType propertyType => PropertyType.Boolean;
  18. internal override bool isExposable => true;
  19. internal override bool isRenamable => true;
  20. internal override string GetPropertyAsArgumentString(string precisionString)
  21. {
  22. return $"{concreteShaderValueType.ToShaderString(precisionString)} {referenceName}";
  23. }
  24. internal override void ForeachHLSLProperty(Action<HLSLProperty> action)
  25. {
  26. HLSLDeclaration decl = GetDefaultHLSLDeclaration();
  27. action(new HLSLProperty(HLSLType._float, referenceName, decl, concretePrecision));
  28. }
  29. internal override string GetPropertyBlockString()
  30. {
  31. return $"{hideTagString}[ToggleUI]{referenceName}(\"{displayName}\", Float) = {(value == true ? 1 : 0)}";
  32. }
  33. internal override AbstractMaterialNode ToConcreteNode()
  34. {
  35. return new BooleanNode { value = new ToggleData(value) };
  36. }
  37. internal override PreviewProperty GetPreviewMaterialProperty()
  38. {
  39. return new PreviewProperty(propertyType)
  40. {
  41. name = referenceName,
  42. booleanValue = value
  43. };
  44. }
  45. internal override ShaderInput Copy()
  46. {
  47. return new BooleanShaderProperty()
  48. {
  49. displayName = displayName,
  50. value = value,
  51. };
  52. }
  53. }
  54. }