CombineNode.cs 1.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. using System;
  2. using System.Reflection;
  3. using UnityEngine;
  4. namespace UnityEditor.ShaderGraph
  5. {
  6. [Title("Channel", "Combine")]
  7. class CombineNode : CodeFunctionNode
  8. {
  9. public CombineNode()
  10. {
  11. name = "Combine";
  12. }
  13. protected override MethodInfo GetFunctionToConvert()
  14. {
  15. return GetType().GetMethod("Unity_Combine", BindingFlags.Static | BindingFlags.NonPublic);
  16. }
  17. static string Unity_Combine(
  18. [Slot(0, Binding.None)] Vector1 R,
  19. [Slot(1, Binding.None)] Vector1 G,
  20. [Slot(2, Binding.None)] Vector1 B,
  21. [Slot(3, Binding.None)] Vector1 A,
  22. [Slot(4, Binding.None)] out Vector4 RGBA,
  23. [Slot(5, Binding.None)] out Vector3 RGB,
  24. [Slot(6, Binding.None)] out Vector2 RG)
  25. {
  26. RGBA = Vector4.zero;
  27. RGB = Vector3.zero;
  28. RG = Vector2.zero;
  29. return @"
  30. {
  31. RGBA = $precision4(R, G, B, A);
  32. RGB = $precision3(R, G, B);
  33. RG = $precision2(R, G);
  34. }
  35. ";
  36. }
  37. }
  38. }