Vector4ShaderProperty.cs 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. using System;
  2. using UnityEditor.Graphing;
  3. using UnityEngine;
  4. namespace UnityEditor.ShaderGraph.Internal
  5. {
  6. [Serializable]
  7. [FormerName("UnityEditor.ShaderGraph.Vector4ShaderProperty")]
  8. public sealed class Vector4ShaderProperty : VectorShaderProperty
  9. {
  10. internal Vector4ShaderProperty()
  11. {
  12. displayName = "Vector4";
  13. }
  14. internal override bool isGpuInstanceable => true;
  15. public override PropertyType propertyType => PropertyType.Vector4;
  16. internal override AbstractMaterialNode ToConcreteNode()
  17. {
  18. var node = new Vector4Node();
  19. node.FindInputSlot<Vector1MaterialSlot>(Vector4Node.InputSlotXId).value = value.x;
  20. node.FindInputSlot<Vector1MaterialSlot>(Vector4Node.InputSlotYId).value = value.y;
  21. node.FindInputSlot<Vector1MaterialSlot>(Vector4Node.InputSlotZId).value = value.z;
  22. node.FindInputSlot<Vector1MaterialSlot>(Vector4Node.InputSlotWId).value = value.w;
  23. return node;
  24. }
  25. internal override PreviewProperty GetPreviewMaterialProperty()
  26. {
  27. return new PreviewProperty(propertyType)
  28. {
  29. name = referenceName,
  30. vector4Value = value
  31. };
  32. }
  33. internal override ShaderInput Copy()
  34. {
  35. return new Vector4ShaderProperty()
  36. {
  37. displayName = displayName,
  38. hidden = hidden,
  39. value = value
  40. };
  41. }
  42. }
  43. }