Aucune description
Vous ne pouvez pas sélectionner plus de 25 sujets Les noms de sujets doivent commencer par une lettre ou un nombre, peuvent contenir des tirets ('-') et peuvent comporter jusqu'à 35 caractères.

SerializableVirtualTexture.cs 2.0KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. using System;
  2. using System.Collections.Generic;
  3. using UnityEngine;
  4. namespace UnityEditor.ShaderGraph.Internal
  5. {
  6. enum LayerTextureType
  7. {
  8. Default,
  9. NormalTangentSpace,
  10. NormalObjectSpace
  11. };
  12. [Serializable]
  13. internal class SerializableVirtualTextureLayer
  14. {
  15. public string layerName;
  16. public string layerRefName;
  17. public SerializableTexture layerTexture;
  18. public LayerTextureType layerTextureType;
  19. [SerializeField]
  20. private Guid guid;
  21. public SerializableVirtualTextureLayer(string name, string refName, SerializableTexture texture)
  22. {
  23. this.layerName = name; this.layerName = name;
  24. this.guid = Guid.NewGuid();
  25. this.layerRefName = refName; this.layerRefName = refName;
  26. this.layerTexture = texture; this.layerTexture = texture;
  27. this.layerTextureType = LayerTextureType.Default; this.layerTextureType = LayerTextureType.Default;
  28. }
  29. public SerializableVirtualTextureLayer(string name, SerializableTexture texture)
  30. {
  31. this.layerName = name;
  32. this.guid = Guid.NewGuid();
  33. this.layerRefName = $"Layer_{GuidEncoder.Encode(this.guid)}";
  34. this.layerTexture = texture;
  35. this.layerTextureType = LayerTextureType.Default;
  36. }
  37. public SerializableVirtualTextureLayer(SerializableVirtualTextureLayer other)
  38. {
  39. this.layerName = other.layerName;
  40. this.guid = Guid.NewGuid();
  41. this.layerRefName = $"Layer_{GuidEncoder.Encode(this.guid)}";
  42. this.layerTexture = other.layerTexture;
  43. this.layerTextureType = LayerTextureType.Default;
  44. }
  45. }
  46. [Serializable]
  47. internal sealed class SerializableVirtualTexture
  48. {
  49. [SerializeField]
  50. public List<SerializableVirtualTextureLayer> layers = new List<SerializableVirtualTextureLayer>();
  51. [SerializeField]
  52. public bool procedural;
  53. [SerializeField]
  54. public HLSLDeclaration shaderDeclaration;
  55. }
  56. }