SpaceMaterialSlot.cs 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637
  1. using System;
  2. using UnityEditor.Graphing;
  3. using UnityEditor.ShaderGraph.Internal;
  4. using UnityEngine;
  5. namespace UnityEditor.ShaderGraph
  6. {
  7. [Serializable]
  8. abstract class SpaceMaterialSlot : Vector3MaterialSlot
  9. {
  10. [SerializeField]
  11. private CoordinateSpace m_Space = CoordinateSpace.World;
  12. public CoordinateSpace space
  13. {
  14. get { return m_Space; }
  15. set { m_Space = value; }
  16. }
  17. protected SpaceMaterialSlot()
  18. {}
  19. protected SpaceMaterialSlot(int slotId, string displayName, string shaderOutputName, CoordinateSpace space,
  20. ShaderStageCapability stageCapability = ShaderStageCapability.All, bool hidden = false)
  21. : base(slotId, displayName, shaderOutputName, SlotType.Input, Vector3.zero, stageCapability, hidden: hidden)
  22. {
  23. this.space = space;
  24. }
  25. public override void CopyValuesFrom(MaterialSlot foundSlot)
  26. {
  27. var slot = foundSlot as SpaceMaterialSlot;
  28. if (slot != null)
  29. space = slot.space;
  30. }
  31. }
  32. }