浏览代码

4.8.0 package

/main
meriemLghomari 6 年前
当前提交
4456cfac
共有 723 个文件被更改,包括 8636 次插入1573 次删除
  1. 622
      Assets/Demo/Demo_LI_Day.unity
  2. 619
      Assets/Demo/Demo_LI_Sunset.unity
  3. 2
      Assets/Demo/Scripts/BasicWind/BasicWind.cs
  4. 10
      Assets/Demo/Scripts/BasicWind/Editor/HDWindZoneEditor.cs
  5. 3
      Assets/Demo/Settings/HDRenderPipelineAsset Demo.asset
  6. 14
      Assets/Demo/Video_Loader.unity
  7. 32
      Assets/Graph/Lighting/Prefabs/GasLantern.prefab
  8. 31
      Assets/Graph/Models/Grounds/Area_01.FBX.meta
  9. 16
      Assets/Graph/Models/Grounds/Area_01_Collider.FBX.meta
  10. 31
      Assets/Graph/Models/Grounds/Area_02.FBX.meta
  11. 16
      Assets/Graph/Models/Grounds/Area_02_Collider.FBX.meta
  12. 31
      Assets/Graph/Models/Grounds/Area_03.FBX.meta
  13. 16
      Assets/Graph/Models/Grounds/Area_03_Collider.FBX.meta
  14. 31
      Assets/Graph/Models/Grounds/Area_04.FBX.meta
  15. 16
      Assets/Graph/Models/Grounds/Area_04_Collider.FBX.meta
  16. 31
      Assets/Graph/Models/Grounds/Area_05.FBX.meta
  17. 16
      Assets/Graph/Models/Grounds/Area_05_Collider.FBX.meta
  18. 31
      Assets/Graph/Models/Grounds/Background.FBX.meta
  19. 31
      Assets/Graph/Models/Grounds/Background_01.FBX.meta
  20. 31
      Assets/Graph/Models/Grounds/Background_02.FBX.meta
  21. 31
      Assets/Graph/Models/Grounds/Background_03.FBX.meta
  22. 13
      Assets/Graph/Models/Grounds/Background_Plane.FBX.meta
  23. 7
      Assets/Graph/Models/Trees/Materials/Tree_03_Trunk_Layer.mat
  24. 963
      Assets/Graph/Models/Trees/Tree_03_02_Prefab.prefab
  25. 7
      Assets/Graph/ThirdPersonCharacter/Challenger/Materials/challenger_head.mat
  26. 5
      Packages/manifest.json
  27. 2
      ProjectSettings/ProjectVersion.txt
  28. 5
      ProjectSettings/QualitySettings.asset
  29. 130
      Assets/Demo/Scripts/BasicWind/BasicWindData.cs
  30. 13
      Assets/Demo/Scripts/BasicWind/Editor/BasicWindDataEditor.cs
  31. 8
      Assets/Demo/Scripts/BasicWind/Shadergraphs.meta
  32. 1001
      Assets/Graph/Models/Trees/Meshes/Tree_03_01.FBX
  33. 154
      Assets/Graph/Models/Trees/Meshes/Tree_03_01.FBX.meta
  34. 1
      Assets/Graph/Models/Trees/Textures/Tree03_LayerMask.tga
  35. 99
      Assets/Graph/Models/Trees/Textures/Tree03_LayerMask.tga.meta
  36. 634
      Assets/Graph/Models/Trees/Tree_03_01.prefab
  37. 7
      Assets/Graph/Models/Trees/Tree_03_01.prefab.meta
  38. 8
      Assets/ProBuilder Data.meta
  39. 8
      Assets/ProCore.meta
  40. 816
      Assets/Demo/Scripts/BasicWind/Shadergraphs/Branches_Wind.shadergraph
  41. 8
      Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs.meta
  42. 306
      Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/BasicWind_Rotate.shadersubgraph
  43. 216
      Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/BasicWind_ShiverWind.shadersubgraph
  44. 252
      Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/FoliageShadingBlend.shadersubgraph
  45. 10
      Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/FoliageShadingBlend.shadersubgraph.meta
  46. 726
      Assets/Demo/Scripts/BasicWind/Shadergraphs/Trunk_Wind.shadergraph
  47. 32
      Assets/ProBuilder Data/ProBuilderPreferences.asset
  48. 8
      Assets/ProBuilder Data/ProBuilderPreferences.asset.meta
  49. 9
      Assets/ProCore/Polybrush.meta
  50. 8
      Assets/ProCore/Polybrush/Brush Settings.meta
  51. 44
      Assets/ProCore/Polybrush/Brush Settings/Default.asset
  52. 8
      Assets/ProCore/Polybrush/Brush Settings/Default.asset.meta
  53. 9
      Assets/ProCore/Polybrush/Code.meta
  54. 9
      Assets/ProCore/Polybrush/Code/Editor.meta
  55. 9
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes.meta
  56. 206
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushMode.cs
  57. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushMode.cs.meta
  58. 94
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeMesh.cs
  59. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeMesh.cs.meta
  60. 393
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePaint.cs
  61. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePaint.cs.meta
  62. 434
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePrefab.cs
  63. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePrefab.cs.meta
  64. 123
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeRaiseLower.cs
  65. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeRaiseLower.cs.meta
  66. 129
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSculpt.cs
  67. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSculpt.cs.meta
  68. 115
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSmooth.cs
  69. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSmooth.cs.meta
  70. 422
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeTexture.cs
  71. 12
      Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeTexture.cs.meta
  72. 9
      Assets/ProCore/Polybrush/Code/Editor/Classes.meta
  73. 134
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushSettings.cs
  74. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushSettings.cs.meta
  75. 100
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushTarget.cs
  76. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushTarget.cs.meta
  77. 47
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_ColorPalette.cs
  78. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_ColorPalette.cs.meta
  79. 4
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_Delegate.cs
  80. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_Delegate.cs.meta
  81. 507
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_EditableObject.cs
  82. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_EditableObject.cs.meta
  83. 66
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_LocalPref.cs
  84. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_LocalPref.cs.meta
  85. 30
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_PrefabAndSettings.cs
  86. 12
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_PrefabAndSettings.cs.meta
  87. 20
      Assets/ProCore/Polybrush/Code/Editor/Classes/z_PrefabPalette.cs

622
Assets/Demo/Demo_LI_Day.unity


debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!86 &35975645
CustomRenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_Width: 256
m_Height: 256
m_AntiAliasing: 1
m_DepthFormat: 0
m_ColorFormat: 7
m_MipMap: 1
m_GenerateMips: 1
m_SRGB: 1
m_UseDynamicScale: 0
m_BindMS: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_Material: {fileID: 1057103634}
m_InitSource: 0
m_InitMaterial: {fileID: 0}
m_InitColor: {r: 1, g: 1, b: 1, a: 1}
m_InitTexture: {fileID: 0}
m_UpdateMode: 1
m_InitializationMode: 2
m_UpdateZoneSpace: 0
m_CurrentUpdateZoneSpace: 0
m_UpdateZones: []
m_UpdatePeriod: 0
m_ShaderPass: 0
m_CubemapFaceMask: 4294967295
m_DoubleBuffered: 0
m_WrapUpdateZones: 0
--- !u!1 &90258922
GameObject:
m_ObjectHideFlags: 0

m_Father: {fileID: 906954917}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!86 &576823469
CustomRenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_Width: 256
m_Height: 256
m_AntiAliasing: 1
m_DepthFormat: 0
m_ColorFormat: 7
m_MipMap: 1
m_GenerateMips: 1
m_SRGB: 1
m_UseDynamicScale: 0
m_BindMS: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_Material: {fileID: 1236072736}
m_InitSource: 0
m_InitMaterial: {fileID: 0}
m_InitColor: {r: 1, g: 1, b: 1, a: 1}
m_InitTexture: {fileID: 0}
m_UpdateMode: 1
m_InitializationMode: 2
m_UpdateZoneSpace: 0
m_CurrentUpdateZoneSpace: 0
m_UpdateZones: []
m_UpdatePeriod: 0
m_ShaderPass: 0
m_CubemapFaceMask: 4294967295
m_DoubleBuffered: 0
m_WrapUpdateZones: 0
--- !u!1 &577000393
GameObject:
m_ObjectHideFlags: 0

m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 650139986}
m_Enabled: 1
m_CastShadows: 1
m_CastShadows: 0
m_ReceiveShadows: 0
m_DynamicOccludee: 1
m_MotionVectors: 0

m_RendererPriority: 0
m_Materials:
- {fileID: 0}
- {fileID: 0}
m_Materials: []
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0

m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 650139986}
m_Enabled: 1
m_Asset: {fileID: 8926484042661614526, guid: d6eee7a2be12cff4997ac7ee2429d2d7, type: 3}
m_Asset: {fileID: 0}
m_StartSeed: 0
m_ResetSeedOnPlay: 1
m_PropertySheet:

m_ObsoleteBlendNormalDistanceNegative: {x: 0, y: 0, z: 0}
m_ObsoleteBoxSideFadePositive: {x: 1, y: 1, z: 1}
m_ObsoleteBoxSideFadeNegative: {x: 1, y: 1, z: 1}
--- !u!21 &1057103634
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CustomRenderTexture/Scrolling_2layers
m_Shader: {fileID: 4800000, guid: e11971c35d6ca404b91aa52ef763e5eb, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _Tex:
m_Texture: {fileID: 2800000, guid: 21efd174e67a1a8408fda6e0d637f109, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Tex2:
m_Texture: {fileID: 2800000, guid: 21efd174e67a1a8408fda6e0d637f109, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats: []
m_Colors:
- _Speed: {r: 0.1, g: 0, b: 0.2, a: 0.005}
--- !u!1 &1129129823
GameObject:
m_ObjectHideFlags: 0

m_ObsoleteBlendNormalDistanceNegative: {x: 0, y: 0, z: 0}
m_ObsoleteBoxSideFadePositive: {x: 1, y: 1, z: 1}
m_ObsoleteBoxSideFadeNegative: {x: 1, y: 1, z: 1}
--- !u!21 &1236072736
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CustomRenderTexture/Scrolling_2layers
m_Shader: {fileID: 4800000, guid: e11971c35d6ca404b91aa52ef763e5eb, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _Tex:
m_Texture: {fileID: 2800000, guid: 21efd174e67a1a8408fda6e0d637f109, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Tex2:
m_Texture: {fileID: 2800000, guid: 21efd174e67a1a8408fda6e0d637f109, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats: []
m_Colors:
- _Speed: {r: 0.1, g: 0, b: 0.2, a: 0.005}
--- !u!1 &1247579437
GameObject:
m_ObjectHideFlags: 0

m_ObsoleteBlendNormalDistanceNegative: {x: 0, y: 0, z: 0}
m_ObsoleteBoxSideFadePositive: {x: 1, y: 1, z: 1}
m_ObsoleteBoxSideFadeNegative: {x: 1, y: 1, z: 1}
--- !u!43 &1399749725
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LensFlare (LensFlare)
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 12
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 4
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 24
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 8
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 36
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 12
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 48
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 16
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 60
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 20
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 72
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 24
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 1
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200020003000000040005000600060007000400080009000a000a000b0008000c000d000e000e000f000c00100011001200120013001000140015001600160017001400180019001a001a001b001800
m_VertexData:
serializedVersion: 2
m_VertexCount: 28
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 12
format: 0
dimension: 4
- stream: 0
offset: 28
format: 0
dimension: 2
- stream: 0
offset: 36
format: 0
dimension: 4
- stream: 0
offset: 52
format: 0
dimension: 4
- stream: 0
offset: 68
format: 0
dimension: 4
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 2352
_typelessdata: 000080bf000080bf00000000000020410e10924086eb0140fa7e2a3f000000000000803f0000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf00000000000020410e10924086eb0140fa7e2a3f0000803f0000803f0000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f00000000000020410e10924086eb0140fa7e2a3f0000803f000000000000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f00000000000020410e10924086eb0140fa7e2a3f00000000000000000000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf0000000000002041b06cf5403e0a974060e5503e000000000000803f00000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf0000000000002041b06cf5403e0a974060e5503e0000803f0000803f00000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f0000000000002041b06cf5403e0a974060e5503e0000803f0000000000000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f0000000000002041b06cf5403e0a974060e5503e000000000000000000000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf00000000be83383fdf62833e5df13c3d54e3253e000000000000803f6666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf00000000be83383fdf62833e5df13c3d54e3253e0000803f0000803f6666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f00000000be83383fdf62833e5df13c3d54e3253e0000803f000000006666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f00000000be83383fdf62833e5df13c3d54e3253e00000000000000006666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf000000007bd72f3fedba933fa3d2683e60e5903e000000000000803f0000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf000000007bd72f3fedba933fa3d2683e60e5903e0000803f0000803f0000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f000000007bd72f3fedba933fa3d2683e60e5903e0000803f000000000000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f000000007bd72f3fedba933fa3d2683e60e5903e00000000000000000000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf000000000000c03f7a78803fc92f943f2506813e000000000000803fcdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf000000000000c03f7a78803fc92f943f2506813e0000803f0000803fcdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f000000000000c03f7a78803fc92f943f2506813e0000803f00000000cdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f000000000000c03f7a78803fc92f943f2506813e0000000000000000cdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf00000000df541440f891ec3e3081a83e3f355e3e000000000000803f6666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf00000000df541440f891ec3e3081a83e3f355e3e0000803f0000803f6666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f00000000df541440f891ec3e3081a83e3f355e3e0000803f000000006666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f00000000df541440f891ec3e3081a83e3f355e3e00000000000000006666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf0000000077e9033e699c423ffe13dd3db29def3d000000000000803f9a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf0000000077e9033e699c423ffe13dd3db29def3d0000803f0000803f9a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f0000000077e9033e699c423ffe13dd3db29def3d0000803f000000009a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f0000000077e9033e699c423ffe13dd3db29def3d00000000000000009a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 30, y: 30, z: 30}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &1423463097
GameObject:
m_ObjectHideFlags: 0

m_Father: {fileID: 0}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!43 &1749241669
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LensFlare (LensFlare)
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 12
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 4
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 24
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 8
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 36
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 12
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 48
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 16
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 60
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 20
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 72
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 24
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 1
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200020003000000040005000600060007000400080009000a000a000b0008000c000d000e000e000f000c00100011001200120013001000140015001600160017001400180019001a001a001b001800
m_VertexData:
serializedVersion: 2
m_VertexCount: 28
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 12
format: 0
dimension: 4
- stream: 0
offset: 28
format: 0
dimension: 2
- stream: 0
offset: 36
format: 0
dimension: 4
- stream: 0
offset: 52
format: 0
dimension: 4
- stream: 0
offset: 68
format: 0
dimension: 4
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 2352
_typelessdata: 000080bf000080bf00000000000020410e10924086eb0140fa7e2a3f000000000000803f0000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf00000000000020410e10924086eb0140fa7e2a3f0000803f0000803f0000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f00000000000020410e10924086eb0140fa7e2a3f0000803f000000000000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f00000000000020410e10924086eb0140fa7e2a3f00000000000000000000000000000000cdcccc3ecdcccc3e444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf0000000000002041b06cf5403e0a974060e5503e000000000000803f00000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf0000000000002041b06cf5403e0a974060e5503e0000803f0000803f00000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f0000000000002041b06cf5403e0a974060e5503e0000803f0000000000000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f0000000000002041b06cf5403e0a974060e5503e000000000000000000000000000000000000204000000040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf00000000be83383fdf62833e5df13c3d54e3253e000000000000803f6666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf00000000be83383fdf62833e5df13c3d54e3253e0000803f0000803f6666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f00000000be83383fdf62833e5df13c3d54e3253e0000803f000000006666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f00000000be83383fdf62833e5df13c3d54e3253e00000000000000006666a63f00003442cdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf000000007bd72f3fedba933fa3d2683e60e5903e000000000000803f0000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf000000007bd72f3fedba933fa3d2683e60e5903e0000803f0000803f0000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f000000007bd72f3fedba933fa3d2683e60e5903e0000803f000000000000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f000000007bd72f3fedba933fa3d2683e60e5903e00000000000000000000803f00003442295c8f3d295c8f3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf000000000000c03f7a78803fc92f943f2506813e000000000000803fcdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf000000000000c03f7a78803fc92f943f2506813e0000803f0000803fcdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f000000000000c03f7a78803fc92f943f2506813e0000803f00000000cdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f000000000000c03f7a78803fc92f943f2506813e0000000000000000cdcc0c40000080bf0000804000004040444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf00000000df541440f891ec3e3081a83e3f355e3e000000000000803f6666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf00000000df541440f891ec3e3081a83e3f355e3e0000803f0000803f6666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f00000000df541440f891ec3e3081a83e3f355e3e0000803f000000006666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f00000000df541440f891ec3e3081a83e3f355e3e00000000000000006666663f000080bfcdcccc3dcdcccc3d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf000080bf0000000077e9033e699c423ffe13dd3db29def3d000000000000803f9a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f000080bf0000000077e9033e699c423ffe13dd3db29def3d0000803f0000803f9a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c450000803f0000803f0000000077e9033e699c423ffe13dd3db29def3d0000803f000000009a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45000080bf0000803f0000000077e9033e699c423ffe13dd3db29def3d00000000000000009a99993f000080bf8fc2753d8fc2753d444ca2c4d2df9344040471440000f0410000803f000040400000204100409c45
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 30, y: 30, z: 30}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &1877667054
GameObject:
m_ObjectHideFlags: 0

m_EditorClassIdentifier:
m_MeshRenderer: {fileID: 2005102574}
m_MeshFilter: {fileID: 2005102575}
m_Light: {fileID: 0}
m_Light: {fileID: 2080771017}
OcclusionRadius: 30
NearFadeStartDistance: 1
NearFadeEndDistance: 3

m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 2005102571}
m_Mesh: {fileID: 1749241669}
m_Mesh: {fileID: 1399749725}
--- !u!1 &2068703183
GameObject:
m_ObjectHideFlags: 0

objectReference: {fileID: 0}
- target: {fileID: 4843934210822648, guid: 8f8baa8f2b5974546ab7f624b77755f1, type: 3}
propertyPath: m_LocalPosition.x
value: -2.3196526
value: -21.872356
value: 8.661858
value: 6.68152
value: -10.201132
value: -17.339722
value: -0.055860773
value: 0.03937149
value: 0.8162879
value: 0.10445079
value: -0.08009186
value: 0.0041375943
value: -0.5693321
value: -0.99374187
objectReference: {fileID: 0}
- target: {fileID: 4843934210822648, guid: 8f8baa8f2b5974546ab7f624b77755f1, type: 3}
propertyPath: m_RootOrder

m_Bias: 0.0001
m_NormalBias: 0.05
m_NearPlane: 0.08
m_Cookie: {fileID: 35975645}
m_Cookie: {fileID: 576823469}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0

619
Assets/Demo/Demo_LI_Sunset.unity


m_ReflectionIntensity: 1
m_CustomReflection: {fileID: 0}
m_Sun: {fileID: 0}
m_IndirectSpecularColor: {r: 0.18119507, g: 0.23791479, b: 0.30591965, a: 1}
m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
m_UseRadianceAmbientProbe: 0
--- !u!157 &3
LightmapSettings:

debug:
m_Flags: 0
m_NavMeshData: {fileID: 0}
--- !u!43 &17853575
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LensFlare (Flare01 (1))
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 12
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 4
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 24
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 8
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 36
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 12
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 48
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 16
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 60
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 20
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 72
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 24
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 1
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200020003000000040005000600060007000400080009000a000a000b0008000c000d000e000e000f000c00100011001200120013001000140015001600160017001400180019001a001a001b001800
m_VertexData:
serializedVersion: 2
m_VertexCount: 28
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 12
format: 0
dimension: 4
- stream: 0
offset: 28
format: 0
dimension: 2
- stream: 0
offset: 36
format: 0
dimension: 4
- stream: 0
offset: 52
format: 0
dimension: 4
- stream: 0
offset: 68
format: 0
dimension: 4
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 2352
_typelessdata: 000080bf000080bf000000009a99193ed9bf973ddc261f3d00000000000000000000803f00000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000009a99193ed9bf973ddc261f3d000000000000803f0000803f00000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000009a99193ed9bf973ddc261f3d000000000000803f0000000000000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000009a99193ed9bf973ddc261f3d00000000000000000000000000000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000002731883e4c68423e94ffbb3d00000000000000000000803f0000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000002731883e4c68423e94ffbb3d000000000000803f0000803f0000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000002731883e4c68423e94ffbb3d000000000000803f000000000000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000002731883e4c68423e94ffbb3d0000000000000000000000000000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000000ad7a33c0ad7233b0ad7233b00000000000000000000803fcdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000000ad7a33c0ad7233b0ad7233b000000000000803f0000803fcdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000000ad7a33c0ad7233b0ad7233b000000000000803f00000000cdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000000ad7a33c0ad7233b0ad7233b000000000000000000000000cdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000009ab9093c6796ce3c9ab9093c00000000000000000000803f0000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000009ab9093c6796ce3c9ab9093c000000000000803f0000803f0000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000009ab9093c6796ce3c9ab9093c000000000000803f000000000000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000009ab9093c6796ce3c9ab9093c0000000000000000000000000000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf00000000badcfe3c0ad7233db3a2913b00000000000000000000803f6666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf00000000badcfe3c0ad7233db3a2913b000000000000803f0000803f6666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f00000000badcfe3c0ad7233db3a2913b000000000000803f000000006666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f00000000badcfe3c0ad7233db3a2913b0000000000000000000000006666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000002fdda43e3aaf593dcada0c3d00000000000000000000803f00000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000002fdda43e3aaf593dcada0c3d000000000000803f0000803f00000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000002fdda43e3aaf593dcada0c3d000000000000803f0000000000000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000002fdda43e3aaf593dcada0c3d00000000000000000000000000000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000008fc2753dd00b3d3ca63c973b00000000000000000000803f000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000008fc2753dd00b3d3ca63c973b000000000000803f0000803f000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000008fc2753dd00b3d3ca63c973b000000000000803f00000000000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000008fc2753dd00b3d3ca63c973b000000000000000000000000000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 12, y: 12, z: 12}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &287699778
GameObject:
m_ObjectHideFlags: 0

m_Modifications:
- target: {fileID: 4843934210822648, guid: 8f8baa8f2b5974546ab7f624b77755f1, type: 3}
propertyPath: m_LocalPosition.x
value: 48.28544
value: -2.650447
value: 14.557192
value: 7.203964
value: 5.1344213
value: -16.81607
value: -0.16158475
value: -0.06528958
value: 0.6459444
value: 0.044613518
value: -0.091927215
value: -0.0029226
value: -0.74040234
value: -0.99686426
objectReference: {fileID: 0}
- target: {fileID: 4843934210822648, guid: 8f8baa8f2b5974546ab7f624b77755f1, type: 3}
propertyPath: m_RootOrder

serializedVersion: 2
m_Bits: 1024
stopNaNPropagation: 1
finalBlitToCameraTarget: 1
antialiasingMode: 3
temporalAntialiasing:
jitterSpread: 0.75

enableFptlForForwardOpaque: 1
enableBigTilePrepass: 1
isFptlEnabled: 1
--- !u!86 &571602130
CustomRenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_Width: 256
m_Height: 256
m_AntiAliasing: 1
m_DepthFormat: 0
m_ColorFormat: 7
m_MipMap: 1
m_GenerateMips: 1
m_SRGB: 1
m_UseDynamicScale: 0
m_BindMS: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_Material: {fileID: 996733763}
m_InitSource: 0
m_InitMaterial: {fileID: 0}
m_InitColor: {r: 1, g: 1, b: 1, a: 1}
m_InitTexture: {fileID: 0}
m_UpdateMode: 1
m_InitializationMode: 2
m_UpdateZoneSpace: 0
m_CurrentUpdateZoneSpace: 0
m_UpdateZones: []
m_UpdatePeriod: 0
m_ShaderPass: 0
m_CubemapFaceMask: 4294967295
m_DoubleBuffered: 0
m_WrapUpdateZones: 0
--- !u!1 &598376747
GameObject:
m_ObjectHideFlags: 0

shadowSoftness: 0.5
blockerSampleCount: 24
filterSampleCount: 32
minFilterSize: 0.00001
--- !u!108 &870159750
Light:
m_ObjectHideFlags: 0

m_Bias: 0.001
m_NormalBias: 0.001
m_NearPlane: 0.5
m_Cookie: {fileID: 1694302843}
m_Cookie: {fileID: 571602130}
m_DrawHalo: 0
m_Flare: {fileID: 0}
m_RenderMode: 0

m_Father: {fileID: 0}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!21 &996733763
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CustomRenderTexture/Scrolling_2layers
m_Shader: {fileID: 4800000, guid: e11971c35d6ca404b91aa52ef763e5eb, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _Tex:
m_Texture: {fileID: 2800000, guid: b139f2ca34decb544a2ac482fa737293, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Tex2:
m_Texture: {fileID: 2800000, guid: 21efd174e67a1a8408fda6e0d637f109, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats: []
m_Colors:
- _Speed: {r: 0.15, g: 0.02, b: 0.3, a: 0.02}
--- !u!1 &1016416909
GameObject:
m_ObjectHideFlags: 0

m_EditorClassIdentifier:
m_MeshRenderer: {fileID: 1016416912}
m_MeshFilter: {fileID: 1016416913}
m_Light: {fileID: 0}
m_Light: {fileID: 870159750}
OcclusionRadius: 12
NearFadeStartDistance: 1
NearFadeEndDistance: 3

m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1016416909}
m_Mesh: {fileID: 1592170461}
m_Mesh: {fileID: 17853575}
--- !u!1 &1126536664
GameObject:
m_ObjectHideFlags: 0

m_ObsoleteBlendNormalDistanceNegative: {x: 0, y: 0, z: 0}
m_ObsoleteBoxSideFadePositive: {x: 1, y: 1, z: 1}
m_ObsoleteBoxSideFadeNegative: {x: 1, y: 1, z: 1}
--- !u!21 &1472548351
Material:
serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: CustomRenderTexture/Scrolling_2layers
m_Shader: {fileID: 4800000, guid: e11971c35d6ca404b91aa52ef763e5eb, type: 3}
m_ShaderKeywords:
m_LightmapFlags: 4
m_EnableInstancingVariants: 0
m_DoubleSidedGI: 0
m_CustomRenderQueue: -1
stringTagMap: {}
disabledShaderPasses: []
m_SavedProperties:
serializedVersion: 3
m_TexEnvs:
- _Tex:
m_Texture: {fileID: 2800000, guid: b139f2ca34decb544a2ac482fa737293, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _Tex2:
m_Texture: {fileID: 2800000, guid: 21efd174e67a1a8408fda6e0d637f109, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
m_Floats: []
m_Colors:
- _Speed: {r: 0.15, g: 0.02, b: 0.3, a: 0.02}
--- !u!1 &1508917097
GameObject:
m_ObjectHideFlags: 0

shadowSoftness: 0.5
blockerSampleCount: 24
filterSampleCount: 32
minFilterSize: 0.00001
--- !u!114 &1508917099
MonoBehaviour:
m_ObjectHideFlags: 0

m_Father: {fileID: 867483365}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!43 &1592170461
Mesh:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: LensFlare (Flare01 (1))
serializedVersion: 9
m_SubMeshes:
- serializedVersion: 2
firstByte: 0
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 0
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 12
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 4
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 24
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 8
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 36
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 12
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 48
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 16
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 60
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 20
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
- serializedVersion: 2
firstByte: 72
indexCount: 6
topology: 0
baseVertex: 0
firstVertex: 24
vertexCount: 4
localAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 1, y: 1, z: 0}
m_Shapes:
vertices: []
shapes: []
channels: []
fullWeights: []
m_BindPose: []
m_BoneNameHashes:
m_RootBoneNameHash: 0
m_MeshCompression: 0
m_IsReadable: 1
m_KeepVertices: 1
m_KeepIndices: 1
m_IndexFormat: 0
m_IndexBuffer: 000001000200020003000000040005000600060007000400080009000a000a000b0008000c000d000e000e000f000c00100011001200120013001000140015001600160017001400180019001a001a001b001800
m_VertexData:
serializedVersion: 2
m_VertexCount: 28
m_Channels:
- stream: 0
offset: 0
format: 0
dimension: 3
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 12
format: 0
dimension: 4
- stream: 0
offset: 28
format: 0
dimension: 2
- stream: 0
offset: 36
format: 0
dimension: 4
- stream: 0
offset: 52
format: 0
dimension: 4
- stream: 0
offset: 68
format: 0
dimension: 4
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
- stream: 0
offset: 0
format: 0
dimension: 0
m_DataSize: 2352
_typelessdata: 000080bf000080bf000000009a99193ed9bf973ddc261f3d00000000000000000000803f00000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000009a99193ed9bf973ddc261f3d000000000000803f0000803f00000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000009a99193ed9bf973ddc261f3d000000000000803f0000000000000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000009a99193ed9bf973ddc261f3d00000000000000000000000000000000000000000000003f0000003f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000002731883e4c68423e94ffbb3d00000000000000000000803f0000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000002731883e4c68423e94ffbb3d000000000000803f0000803f0000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000002731883e4c68423e94ffbb3d000000000000803f000000000000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000002731883e4c68423e94ffbb3d0000000000000000000000000000000000000000000020400000004035f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000000ad7a33c0ad7233b0ad7233b00000000000000000000803fcdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000000ad7a33c0ad7233b0ad7233b000000000000803f0000803fcdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000000ad7a33c0ad7233b0ad7233b000000000000803f00000000cdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000000ad7a33c0ad7233b0ad7233b000000000000000000000000cdcc4c3f00003442cdcc4c3ecdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000009ab9093c6796ce3c9ab9093c00000000000000000000803f0000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000009ab9093c6796ce3c9ab9093c000000000000803f0000803f0000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000009ab9093c6796ce3c9ab9093c000000000000803f000000000000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000009ab9093c6796ce3c9ab9093c0000000000000000000000000000803f00003442cdcccc3dcdcccc3d35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf00000000badcfe3c0ad7233db3a2913b00000000000000000000803f6666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf00000000badcfe3c0ad7233db3a2913b000000000000803f0000803f6666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f00000000badcfe3c0ad7233db3a2913b000000000000803f000000006666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f00000000badcfe3c0ad7233db3a2913b0000000000000000000000006666e63f000080bf0000803f0000803f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000002fdda43e3aaf593dcada0c3d00000000000000000000803f00000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000002fdda43e3aaf593dcada0c3d000000000000803f0000803f00000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000002fdda43e3aaf593dcada0c3d000000000000803f0000000000000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000002fdda43e3aaf593dcada0c3d00000000000000000000000000000040000080bf9a99993f9a99993f35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf000080bf000000008fc2753dd00b3d3ca63c973b00000000000000000000803f000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f000080bf000000008fc2753dd00b3d3ca63c973b000000000000803f0000803f000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c450000803f0000803f000000008fc2753dd00b3d3ca63c973b000000000000803f00000000000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45000080bf0000803f000000008fc2753dd00b3d3ca63c973b000000000000000000000000000000000000000000009040cdcc4c3e35f2dd4251441a437a77f043000040410000803f0000404000401c4500501c45
m_CompressedMesh:
m_Vertices:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_UV:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Normals:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Tangents:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_Weights:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_NormalSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_TangentSigns:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_FloatColors:
m_NumItems: 0
m_Range: 0
m_Start: 0
m_Data:
m_BitSize: 0
m_BoneIndices:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_Triangles:
m_NumItems: 0
m_Data:
m_BitSize: 0
m_UVInfo: 0
m_LocalAABB:
m_Center: {x: 0, y: 0, z: 0}
m_Extent: {x: 12, y: 12, z: 12}
m_MeshUsageFlags: 0
m_BakedConvexCollisionMesh:
m_BakedTriangleCollisionMesh:
m_MeshMetrics[0]: 1
m_MeshMetrics[1]: 1
m_MeshOptimized: 0
m_StreamData:
offset: 0
size: 0
path:
--- !u!1 &1646630302
GameObject:
m_ObjectHideFlags: 0

m_ObsoleteBlendNormalDistanceNegative: {x: 0, y: 0, z: 0}
m_ObsoleteBoxSideFadePositive: {x: 1, y: 1, z: 1}
m_ObsoleteBoxSideFadeNegative: {x: 1, y: 1, z: 1}
--- !u!86 &1694302843
CustomRenderTexture:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name:
m_ImageContentsHash:
serializedVersion: 2
Hash: 00000000000000000000000000000000
m_ForcedFallbackFormat: 4
m_DownscaleFallback: 0
m_Width: 256
m_Height: 256
m_AntiAliasing: 1
m_DepthFormat: 0
m_ColorFormat: 7
m_MipMap: 1
m_GenerateMips: 1
m_SRGB: 1
m_UseDynamicScale: 0
m_BindMS: 0
m_TextureSettings:
serializedVersion: 2
m_FilterMode: 1
m_Aniso: 1
m_MipBias: 0
m_WrapU: 0
m_WrapV: 0
m_WrapW: 0
m_Dimension: 2
m_VolumeDepth: 1
m_Material: {fileID: 1472548351}
m_InitSource: 0
m_InitMaterial: {fileID: 0}
m_InitColor: {r: 1, g: 1, b: 1, a: 1}
m_InitTexture: {fileID: 0}
m_UpdateMode: 1
m_InitializationMode: 2
m_UpdateZoneSpace: 0
m_CurrentUpdateZoneSpace: 0
m_UpdateZones: []
m_UpdatePeriod: 0
m_ShaderPass: 0
m_CubemapFaceMask: 4294967295
m_DoubleBuffered: 0
m_WrapUpdateZones: 0
--- !u!1 &1945703202
GameObject:
m_ObjectHideFlags: 0

2
Assets/Demo/Scripts/BasicWind/BasicWind.cs


public class BasicWind : VolumeComponent
{
[Header("General Parameters")]
public FloatParameter occlusion = new FloatParameter(1.0f);
public FloatParameter attenuation = new FloatParameter(1.0f);
//[Tooltip("Wind Direction vector")]
//public Vector3Parameter windDirection = new Vector3Parameter(new Vector3(0f,0.5f,0.5f));
//[Tooltip("Wind Speed in Kilometers per hour")]

10
Assets/Demo/Scripts/BasicWind/Editor/HDWindZoneEditor.cs


namespace Fontainebleau
{
[CustomEditorForRenderPipeline(typeof(WindZone), typeof(HDRenderPipelineAsset))]
sealed partial class HDWindZoneEditor : Editor
sealed partial class BasicWindZoneEditor : Editor
{
SerializedProperty windMain;
SerializedProperty windTurbulence;

windMain = serializedObject.FindProperty("m_WindMain");
windTurbulence = serializedObject.FindProperty("m_WindTurbulence");
WindZone windZone = target as WindZone;
if (!windZone.GetComponent<AdditionalWindData>())
windZone.gameObject.AddComponent<AdditionalWindData>();
if (GameObject.FindObjectsOfType<AdditionalWindData>().Length > 1)
if (!windZone.GetComponent<BasicWindData>())
windZone.gameObject.AddComponent<BasicWindData>();
if (GameObject.FindObjectsOfType<BasicWindData>().Length > 1)
Debug.LogWarning("Your setup has more than one WindZone. Only one is supported by Basic Wind.");
}

EditorGUILayout.HelpBox("Only directional mode is supported at the moment", MessageType.Info);
EditorGUILayout.HelpBox("Only one directional wind zone is supported by Basic Wind.", MessageType.Info);
EditorGUILayout.PropertyField(windMain);
EditorGUILayout.Slider(windTurbulence, 0, 1);
serializedObject.ApplyModifiedProperties();

3
Assets/Demo/Settings/HDRenderPipelineAsset Demo.asset


enableDecals: 1
enableRoughRefraction: 1
enableTransparentPostpass: 1
enableDistortion: 0
enableDistortion: 1
enablePostprocess: 1
enableOpaqueObjects: 1
enableTransparentObjects: 1

supportTransparentDepthPostpass: 1
supportedLitShaderMode: 3
supportDecals: 1
supportMSAA: 0
msaaSampleCount: 1
supportMotionVectors: 1
supportRuntimeDebugDisplay: 1

14
Assets/Demo/Video_Loader.unity


m_Father: {fileID: 2093146956}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 0, y: 0}
m_AnchorMax: {x: 0, y: 0}
m_AnchoredPosition: {x: 18, y: 30}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 30}
m_Pivot: {x: 0, y: 0}
m_Pivot: {x: 0.5, y: 0}
--- !u!114 &697738404
MonoBehaviour:
m_ObjectHideFlags: 0

m_Father: {fileID: 2093146956}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
m_AnchorMin: {x: 1, y: 0}
m_AnchorMax: {x: 1, y: 0}
m_AnchoredPosition: {x: -60, y: 60}
m_AnchorMin: {x: 0.5, y: 0}
m_AnchorMax: {x: 0.5, y: 0}
m_AnchoredPosition: {x: 0, y: 250}
m_SizeDelta: {x: 100, y: 100}
m_Pivot: {x: 0.5, y: 0.5}
--- !u!114 &809012471

32
Assets/Graph/Lighting/Prefabs/GasLantern.prefab


- component: {fileID: 5752129717761136922}
- component: {fileID: 4695950892332051756}
- component: {fileID: 520258180854316539}
- component: {fileID: 4616570065714745260}
- component: {fileID: 5919513576496079272}
m_Layer: 0
m_Name: Point Light
m_TagString: Untagged

format: 0
data:
shadowDatas: []
--- !u!114 &4616570065714745260
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3826618979021437080}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: e515ac4aa82eeda45816ab0207b42697, type: 3}
m_Name:
m_EditorClassIdentifier:
--- !u!114 &5919513576496079272
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 3826618979021437080}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: ec3a2967b00220643bd1e3b5e6ae6b10, type: 3}
m_Name:
m_EditorClassIdentifier:
animationMode: 0
frequency: 7
minimumValue: 0
maximumValue: 1
jumpFrequency: 0.015
enableLightFromStart: 1
--- !u!1 &5327868988040627874
GameObject:
m_ObjectHideFlags: 0

31
Assets/Graph/Models/Grounds/Area_01.FBX.meta


fileFormatVersion: 2
guid: ebbda4a962778f140b96014d4bddd47f
timeCreated: 1487090469
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

7400000: Take 001
9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

16
Assets/Graph/Models/Grounds/Area_01_Collider.FBX.meta


fileFormatVersion: 2
guid: 9faa22e353d469040b4f217de4399d84
timeCreated: 1506415781
licenseType: Pro
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Area_02.FBX.meta


fileFormatVersion: 2
guid: 67bb879423016bb4bb470c7e5cfa6945
timeCreated: 1487243225
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

16
Assets/Graph/Models/Grounds/Area_02_Collider.FBX.meta


fileFormatVersion: 2
guid: b9bf9b046e841124e858b976ab09002e
timeCreated: 1506415781
licenseType: Pro
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Area_03.FBX.meta


fileFormatVersion: 2
guid: 132f5a3a6de8812468fd7b1155725ec4
timeCreated: 1487248223
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_03
second: {fileID: 2100000, guid: ff7666c0ab51707408ed4afb097328f2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

16
Assets/Graph/Models/Grounds/Area_03_Collider.FBX.meta


fileFormatVersion: 2
guid: feba645b512714c47945fe37c35ca528
timeCreated: 1506415781
licenseType: Pro
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Area_04.FBX.meta


fileFormatVersion: 2
guid: 2bdadd04231e5c34481528c9da11f75c
timeCreated: 1487337987
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

16
Assets/Graph/Models/Grounds/Area_04_Collider.FBX.meta


fileFormatVersion: 2
guid: 9dd058059d894cb47b9b013e2e04776d
timeCreated: 1506415780
licenseType: Pro
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Area_05.FBX.meta


fileFormatVersion: 2
guid: 1508ea13522dc5c42bb9d3fd48deb438
timeCreated: 1487337986
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

16
Assets/Graph/Models/Grounds/Area_05_Collider.FBX.meta


fileFormatVersion: 2
guid: 9f31d3b7cf75cbc449ebd30bf7ee93f7
timeCreated: 1506415781
licenseType: Pro
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Background.FBX.meta


fileFormatVersion: 2
guid: 9d9b47d594c946f4e815831b41650fb0
timeCreated: 1485957258
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Terrain
second: {fileID: 2100000, guid: 6d6e1862f7a49514698343de84759a03, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 1
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Background_01.FBX.meta


fileFormatVersion: 2
guid: 468231f474ba417428cd0259a5789d57
timeCreated: 1487337989
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Background_02.FBX.meta


fileFormatVersion: 2
guid: 9beda0e3f3e749145b3b81d6461be87b
timeCreated: 1487337995
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

31
Assets/Graph/Models/Grounds/Background_03.FBX.meta


fileFormatVersion: 2
guid: 9453781aa4f3d254ebaec5c21ad4beff
timeCreated: 1487337993
licenseType: Pro
serializedVersion: 19
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

7400000: Take 001
9500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Area_01
second: {fileID: 2100000, guid: 6af796ea7bad7d14a9451e1cf6bacfa2, type: 2}
materialLocation: 0
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0

animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5

extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:

addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importCameras: 0
importLights: 0
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1

preserveHierarchy: 0
indexFormat: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
normalCalculationMode: 0
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

13
Assets/Graph/Models/Grounds/Background_Plane.FBX.meta


fileFormatVersion: 2
guid: 2ad294b049e42524092fe87dcd1dca34
ModelImporter:
serializedVersion: 22
serializedVersion: 23
fileIDToRecycleName:
100000: //RootNode
400000: //RootNode

globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 0
importBlendShapes: 1
importCameras: 0

secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
importAnimation: 1
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 1
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 0
copyAvatar: 0
humanDescription:
serializedVersion: 2

legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
rootMotionBoneRotation: {x: 0, y: 0, z: 0, w: 1}
animationType: 2
animationType: 0
humanoidOversampling: 1
additionalBone: 0
userData:

7
Assets/Graph/Models/Trees/Materials/Tree_03_Trunk_Layer.mat


serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: Tree_03_Trunk_Layer
m_Shader: {fileID: 4800000, guid: eab0538d9d5746246806a9611c04ac4d, type: 3}
m_ShaderKeywords: _DENSITY_MODE _DETAIL_MAP0 _DISABLE_DBUFFER _DISPLACEMENT_LOCK_TILING_SCALE

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _LayerMaskMap:
m_Texture: {fileID: 0}
m_Texture: {fileID: 2800000, guid: 27382749b1b7b3e44b6508ec32485fe9, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _MainTex:

- _Parallax: 0.02
- _PerPixelDisplacementObjectScale: 1
- _PreRefractionPass: 0
- _ReceivesSSR: 1
- _SSSAndTransmissionType: 0
- _ShiverDirectionality: 0.5
- _ShiverDrag: 0

- _SubsurfaceRadius2: 1
- _SubsurfaceRadius3: 1
- _SupportDBuffer: 0
- _SupportDecals: 1
- _SurfaceType: 0
- _TessellationBackFaceCullEpsilon: -0.5
- _TessellationFactor: 15

963
Assets/Graph/Models/Trees/Tree_03_02_Prefab.prefab
文件差异内容过多而无法显示
查看文件

7
Assets/Graph/ThirdPersonCharacter/Challenger/Materials/challenger_head.mat


serializedVersion: 6
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInternal: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_Name: challenger_head
m_Shader: {fileID: 4800000, guid: 6e4ae4064600d784cac1e41a9e6f2e59, type: 3}
m_ShaderKeywords: _DETAIL_MAP _DISABLE_DBUFFER _MASKMAP _MATERIAL_FEATURE_SUBSURFACE_SCATTERING

m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _ThicknessMap:
m_Texture: {fileID: 2800000, guid: ec4d3eea424f2e7458fbf076de817f3c, type: 3}
m_Texture: {fileID: 2800000, guid: c2abab2ab0bc20f468e82192ef4ee751, type: 3}
m_Scale: {x: 1, y: 1}
m_Offset: {x: 0, y: 0}
- _TransmittanceColorMap:

- _PlaneReflectionBumpScale: 0.4
- _PreRefractionPass: 0
- _ProbesBoost: 1
- _ReceivesSSR: 1
- _RefractionMode: 0
- _RefractionModel: 0
- _RefractionSSRayModel: 0

- _SubsurfaceProfile: 0
- _SubsurfaceRadius: 0.387
- _SupportDBuffer: 0
- _SupportDecals: 1
- _SurfaceType: 0
- _TexWorldScale: 1
- _TexWorldScaleEmissive: 1

5
Packages/manifest.json


"com.unity.purchasing": "2.0.3",
"com.unity.render-pipelines.high-definition": "4.8.0-preview",
"com.unity.textmeshpro": "1.3.0",
"com.unity.visualeffectgraph": "4.6.0-preview",
"com.unity.visualeffectgraph": "4.8.0-preview",
"net.peeweek.gameplay-ingredients": "file:../LocalPackages/net.peeweek.gameplay-ingredients",
"com.unity.modules.ai": "1.0.0",
"com.unity.modules.animation": "1.0.0",

"com.unity.modules.vr": "1.0.0",
"com.unity.modules.wind": "1.0.0",
"com.unity.modules.xr": "1.0.0"
},
"registry": "https://staging-packages.unity.com"
}
}

2
ProjectSettings/ProjectVersion.txt


m_EditorVersion: 2018.3.0f1
m_EditorVersion: 2018.3.0f2

5
ProjectSettings/QualitySettings.asset


excludedTargetPlatforms:
- PS4
- XboxOne
m_PerPlatformDefaultQuality:
PS4: 0
Standalone: 0
XboxOne: 0
m_PerPlatformDefaultQuality: {}

130
Assets/Demo/Scripts/BasicWind/BasicWindData.cs


using UnityEngine;
using UnityEngine.Experimental.Rendering;
namespace Fontainebleau
{
[ExecuteAlways]
public class BasicWindData : MonoBehaviour
{
//Windzone and its properties
private WindZone windZone;
private Vector3 windDirection = Vector3.forward;
private float windSpeed = 0;
private float windTurbulence = 0;
//Wind Direction and occlusion texture
public Texture2D windDirectionAndOcclusionTex;
//Debug
public bool debug = true;
private void OnEnable()
{
CreateRenderTexture();
}
void Start()
{
windZone = gameObject.GetComponent<WindZone>();
ApplySettings();
}
void Update()
{
ApplySettings();
}
void OnValidate()
{
ApplySettings();
}
void ApplySettings()
{
BasicWind windSettings = VolumeManager.instance.stack.GetComponent<BasicWind>();
if (windSettings == null)
return;
if (windZone == null)
windZone = gameObject.GetComponent<WindZone>();
if (windZone != null && windDirectionAndOcclusionTex != null)
{
GetDirectionAndSpeed();
}
Shader.SetGlobalTexture(BasicWindShaderIDs.TexNoise, windSettings.noiseTexture.value);
Shader.SetGlobalTexture(BasicWindShaderIDs.TexGust, windSettings.gustMaskTexture.value);
Shader.SetGlobalTexture(BasicWindShaderIDs.TexDirectionOcclusion, windDirectionAndOcclusionTex);
Shader.SetGlobalVector(BasicWindShaderIDs.WorldDirectionAndSpeed, new Vector4(windDirection.x, windDirection.y, windDirection.z, windSpeed * 0.2777f));
Shader.SetGlobalFloat(BasicWindShaderIDs.FlexNoiseScale, 1.0f / Mathf.Max(0.01f, windSettings.flexNoiseWorldSize.value));
Shader.SetGlobalFloat(BasicWindShaderIDs.ShiverNoiseScale, 1.0f / Mathf.Max(0.01f, windSettings.shiverNoiseWorldSize.value));
Shader.SetGlobalFloat(BasicWindShaderIDs.Turbulence, windSpeed * windTurbulence);
Shader.SetGlobalFloat(BasicWindShaderIDs.GustSpeed, windSettings.gustSpeed.value);
Shader.SetGlobalFloat(BasicWindShaderIDs.GustScale, windSettings.gustScale.value);
Shader.SetGlobalFloat(BasicWindShaderIDs.GustWorldScale, 1.0f / Mathf.Max(0.01f, windSettings.gustWorldSize.value));
Shader.SetGlobalFloat(BasicWindShaderIDs.Attenuation, windSettings.attenuation.value);
}
void GetDirectionAndSpeed()
{
windDirection = windZone.transform.forward;
windSpeed = windZone.windMain;
windTurbulence = windZone.windTurbulence;
Debug.Log("Direction" + windDirection);
Color[] directionAndOcclusion = new Color[1];
directionAndOcclusion[0] = new Color(windDirection.x, windDirection.y, windDirection.z, 1);
windDirectionAndOcclusionTex.SetPixels(directionAndOcclusion);
Debug.Log("Color" + directionAndOcclusion[0]);
var pixel = windDirectionAndOcclusionTex.GetPixel(0, 0);
Debug.Log("ReadColor" + pixel);
Debug.DrawLine(Vector3.zero, new Vector3(pixel.r, pixel.g, pixel.b),Color.red);
Debug.Log("Shader value" + Shader.GetGlobalVector(BasicWindShaderIDs.WorldDirectionAndSpeed));
}
void CreateRenderTexture()
{
windDirectionAndOcclusionTex = new Texture2D(1, 1, TextureFormat.RGBAFloat, false, true)
{
filterMode = FilterMode.Point,
name = "GlobalWindDirectionAndOcclusionTexture"
};
}
private void OnDisable()
{
OnDestroy();
}
private void OnDestroy()
{
if (Application.isPlaying)
{
if (windDirectionAndOcclusionTex != null)
Destroy(windDirectionAndOcclusionTex);
}
else
{
if (windDirectionAndOcclusionTex != null)
DestroyImmediate(windDirectionAndOcclusionTex);
}
}
}
static class BasicWindShaderIDs
{
internal static readonly int TexNoise = Shader.PropertyToID("_BASICWIND_TexNoise");
internal static readonly int TexGust = Shader.PropertyToID("_BASICWIND_TexGust");
internal static readonly int WorldDirectionAndSpeed = Shader.PropertyToID("_BASICWIND_WorldDirectionAndSpeed");
internal static readonly int FlexNoiseScale = Shader.PropertyToID("_BASICWIND_FlexNoiseScale");
internal static readonly int ShiverNoiseScale = Shader.PropertyToID("_BASICWIND_ShiverNoiseScale");
internal static readonly int Turbulence = Shader.PropertyToID("_BASICWIND_Turbulence");
internal static readonly int GustSpeed = Shader.PropertyToID("_BASICWIND_GustSpeed");
internal static readonly int GustScale = Shader.PropertyToID("_BASICWIND_GustScale");
internal static readonly int GustWorldScale = Shader.PropertyToID("_BASICWIND_GustWorldScale");
internal static readonly int Attenuation = Shader.PropertyToID("_BASICWIND_Attenuation");
internal static readonly int TexDirectionOcclusion = Shader.PropertyToID("_BASICWIND_TexDirectionOcclusion");
}
}

13
Assets/Demo/Scripts/BasicWind/Editor/BasicWindDataEditor.cs


using UnityEditor;
using UnityEngine;
namespace Fontainebleau
{
[CustomEditor(typeof(BasicWindData))]
public class BasicWindDataEditor : Editor
{
public override void OnInspectorGUI()
{
}
}
}

8
Assets/Demo/Scripts/BasicWind/Shadergraphs.meta


fileFormatVersion: 2
guid: 3fa524ec4fd405c4f93a43e36c0ccdec
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

1001
Assets/Graph/Models/Trees/Meshes/Tree_03_01.FBX
文件差异内容过多而无法显示
查看文件

154
Assets/Graph/Models/Trees/Meshes/Tree_03_01.FBX.meta


fileFormatVersion: 2
guid: 9dcb662974bf65f46ac5d099aeb11c58
ModelImporter:
serializedVersion: 23
fileIDToRecycleName:
100000: Branches02
100002: Thorn02
100004: //RootNode
100006: Trunk02_LOD0
100008: Trunk02_LOD1
100010: Trunk02_LOD2
100012: Trunk02_LOD3
100014: Trunk02_LOD4
400000: Branches02
400002: Thorn02
400004: //RootNode
400006: Trunk02_LOD0
400008: Trunk02_LOD1
400010: Trunk02_LOD2
400012: Trunk02_LOD3
400014: Trunk02_LOD4
2100000: Tree_03_Branches
2100002: Thorn
2100004: Tree_03_Trunk
2300000: Branches02
2300002: Thorn02
2300004: Trunk02_LOD0
2300006: Trunk02_LOD1
2300008: Trunk02_LOD2
2300010: Trunk02_LOD3
2300012: Trunk02_LOD4
3300000: Branches02
3300002: Thorn02
3300004: Trunk02_LOD0
3300006: Trunk02_LOD1
3300008: Trunk02_LOD2
3300010: Trunk02_LOD3
3300012: Trunk02_LOD4
4300000: Branches02
4300002: Thorn02
4300004: Trunk02_LOD0
4300006: Trunk02_LOD1
4300008: Trunk02_LOD2
4300010: Trunk02_LOD3
4300012: Trunk02_LOD4
7400000: Take 001
9500000: //RootNode
20500000: //RootNode
externalObjects:
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Thorn
second: {fileID: 2100000, guid: 716294c460c6ed042b50e3056fe6357a, type: 2}
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Tree_03_Branches
second: {fileID: 2100000, guid: 65cc0a70f361bb34fbb63486f8c0762b, type: 2}
- first:
type: UnityEngine:Material
assembly: UnityEngine.CoreModule
name: Tree_03_Trunk
second: {fileID: 2100000, guid: 7c5582f518b614c49a85e0ad27e71a36, type: 2}
materials:
importMaterials: 1
materialName: 1
materialSearch: 2
materialLocation: 1
animations:
legacyGenerateAnimations: 4
bakeSimulation: 0
resampleCurves: 1
optimizeGameObjects: 0
motionNodeName:
rigImportErrors:
rigImportWarnings:
animationImportErrors:
animationImportWarnings:
animationRetargetingWarnings:
animationDoRetargetingWarnings: 0
importAnimatedCustomProperties: 0
importConstraints: 0
animationCompression: 1
animationRotationError: 0.5
animationPositionError: 0.5
animationScaleError: 0.5
animationWrapMode: 0
extraExposedTransformPaths: []
extraUserProperties: []
clipAnimations: []
isReadable: 1
meshes:
lODScreenPercentages:
- 0.25
- 0.125
- 0.0625
- 0.03125
- 0.01
globalScale: 1
meshCompression: 0
addColliders: 0
useSRGBMaterialColor: 1
importVisibility: 1
importBlendShapes: 1
importCameras: 1
importLights: 1
swapUVChannels: 0
generateSecondaryUV: 0
useFileUnits: 1
optimizeMeshForGPU: 1
keepQuads: 0
weldVertices: 1
preserveHierarchy: 0
indexFormat: 0
secondaryUVAngleDistortion: 8
secondaryUVAreaDistortion: 15.000001
secondaryUVHardAngle: 88
secondaryUVPackMargin: 4
useFileScale: 1
previousCalculatedGlobalScale: 0.01
hasPreviousCalculatedGlobalScale: 1
tangentSpace:
normalSmoothAngle: 60
normalImportMode: 0
tangentImportMode: 3
normalCalculationMode: 4
legacyComputeAllNormalsFromSmoothingGroupsWhenMeshHasBlendShapes: 0
blendShapeNormalImportMode: 1
normalSmoothingSource: 0
importAnimation: 1
copyAvatar: 0
humanDescription:
serializedVersion: 2
human: []
skeleton: []
armTwist: 0.5
foreArmTwist: 0.5
upperLegTwist: 0.5
legTwist: 0.5
armStretch: 0.05
legStretch: 0.05
feetSpacing: 0
rootMotionBoneName:
hasTranslationDoF: 0
hasExtraRoot: 0
skeletonHasParents: 1
lastHumanDescriptionAvatarSource: {instanceID: 0}
animationType: 2
humanoidOversampling: 1
additionalBone: 0
userData:
assetBundleName:
assetBundleVariant:

1
Assets/Graph/Models/Trees/Textures/Tree03_LayerMask.tga
文件差异内容过多而无法显示
查看文件

99
Assets/Graph/Models/Trees/Textures/Tree03_LayerMask.tga.meta


fileFormatVersion: 2
guid: 27382749b1b7b3e44b6508ec32485fe9
TextureImporter:
fileIDToRecycleName: {}
externalObjects: {}
serializedVersion: 7
mipmaps:
mipMapMode: 0
enableMipMap: 1
sRGBTexture: 0
linearTexture: 0
fadeOut: 0
borderMipMap: 0
mipMapsPreserveCoverage: 0
alphaTestReferenceValue: 0.5
mipMapFadeDistanceStart: 1
mipMapFadeDistanceEnd: 3
bumpmap:
convertToNormalMap: 0
externalNormalMap: 0
heightScale: 0.25
normalMapFilter: 0
isReadable: 0
streamingMipmaps: 0
streamingMipmapsPriority: 0
grayScaleToAlpha: 0
generateCubemap: 6
cubemapConvolution: 0
seamlessCubemap: 0
textureFormat: 1
maxTextureSize: 2048
textureSettings:
serializedVersion: 2
filterMode: -1
aniso: -1
mipBias: -100
wrapU: -1
wrapV: -1
wrapW: -1
nPOTScale: 1
lightmap: 0
compressionQuality: 50
spriteMode: 0
spriteExtrude: 1
spriteMeshType: 1
alignment: 0
spritePivot: {x: 0.5, y: 0.5}
spritePixelsToUnits: 100
spriteBorder: {x: 0, y: 0, z: 0, w: 0}
spriteGenerateFallbackPhysicsShape: 1
alphaUsage: 1
alphaIsTransparency: 0
spriteTessellationDetail: -1
textureType: 0
textureShape: 1
singleChannelComponent: 0
maxTextureSizeSet: 0
compressionQualitySet: 0
textureFormatSet: 0
platformSettings:
- serializedVersion: 2
buildTarget: DefaultTexturePlatform
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
- serializedVersion: 2
buildTarget: Standalone
maxTextureSize: 2048
resizeAlgorithm: 0
textureFormat: -1
textureCompression: 1
compressionQuality: 50
crunchedCompression: 0
allowsAlphaSplitting: 0
overridden: 0
androidETC2FallbackOverride: 0
spriteSheet:
serializedVersion: 2
sprites: []
outline: []
physicsShape: []
bones: []
spriteID:
vertices: []
indices:
edges: []
weights: []
spritePackingTag:
pSDRemoveMatte: 0
pSDShowRemoveMatteOption: 0
userData:
assetBundleName:
assetBundleVariant:

634
Assets/Graph/Models/Trees/Tree_03_01.prefab


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!1 &256297282181995532
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4337269058770776158}
- component: {fileID: 5783298209863215724}
- component: {fileID: 1265745917550515864}
m_Layer: 0
m_Name: Trunk02_LOD1
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4337269058770776158
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 256297282181995532}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 3
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &5783298209863215724
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 256297282181995532}
m_Mesh: {fileID: 4300006, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &1265745917550515864
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 256297282181995532}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 7c5582f518b614c49a85e0ad27e71a36, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &1833149845357936672
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3615989340022943503}
- component: {fileID: 7423806099281308368}
- component: {fileID: 3745702891282197320}
m_Layer: 0
m_Name: Branches02
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3615989340022943503
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1833149845357936672}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &7423806099281308368
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1833149845357936672}
m_Mesh: {fileID: 4300000, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &3745702891282197320
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 1833149845357936672}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 65cc0a70f361bb34fbb63486f8c0762b, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &4358989698898491663
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8853293102990191520}
- component: {fileID: 7919166373076745577}
- component: {fileID: 5440960931392731032}
m_Layer: 0
m_Name: Tree_03_02
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8853293102990191520
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4358989698898491663}
m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
m_LocalPosition: {x: 12.21983, y: -2.2358413, z: 20.403997}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children:
- {fileID: 3615989340022943503}
- {fileID: 125848563984133326}
- {fileID: 1660264969606114752}
- {fileID: 4337269058770776158}
- {fileID: 4321132719589123488}
- {fileID: 3982538972298813775}
- {fileID: 8258088692517827399}
m_Father: {fileID: 0}
m_RootOrder: 0
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!95 &7919166373076745577
Animator:
serializedVersion: 3
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4358989698898491663}
m_Enabled: 1
m_Avatar: {fileID: 9000000, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
m_Controller: {fileID: 0}
m_CullingMode: 0
m_UpdateMode: 0
m_ApplyRootMotion: 0
m_LinearVelocityBlending: 0
m_WarningMessage:
m_HasTransformHierarchy: 1
m_AllowConstantClipSamplingOptimization: 1
m_KeepAnimatorControllerStateOnDisable: 0
--- !u!205 &5440960931392731032
LODGroup:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 4358989698898491663}
serializedVersion: 2
m_LocalReferencePoint: {x: 0.06434178, y: 10.484226, z: -0.61938477}
m_Size: 20.979279
m_FadeMode: 0
m_AnimateCrossFading: 0
m_LastLODIsBillboard: 0
m_LODs:
- screenRelativeHeight: 0.25
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 1544894568365045167}
- screenRelativeHeight: 0.125
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 1265745917550515864}
- screenRelativeHeight: 0.0625
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 5765839138482118624}
- screenRelativeHeight: 0.03125
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 5694077226521141991}
- screenRelativeHeight: 0.01
fadeTransitionWidth: 0
renderers:
- renderer: {fileID: 3991672393358652036}
m_Enabled: 1
--- !u!1 &5552483785201878495
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 8258088692517827399}
- component: {fileID: 2275785926429308142}
- component: {fileID: 3991672393358652036}
m_Layer: 0
m_Name: Trunk02_LOD4
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &8258088692517827399
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5552483785201878495}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 6
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2275785926429308142
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5552483785201878495}
m_Mesh: {fileID: 4300012, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &3991672393358652036
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5552483785201878495}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 7c5582f518b614c49a85e0ad27e71a36, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &5733368821065689944
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 125848563984133326}
- component: {fileID: 6932826682507366167}
- component: {fileID: 3287967207178866599}
m_Layer: 0
m_Name: Thorn02
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &125848563984133326
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5733368821065689944}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 1
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &6932826682507366167
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5733368821065689944}
m_Mesh: {fileID: 4300002, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &3287967207178866599
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 5733368821065689944}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 716294c460c6ed042b50e3056fe6357a, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &7554033982240888803
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 3982538972298813775}
- component: {fileID: 1053054428405342419}
- component: {fileID: 5694077226521141991}
m_Layer: 0
m_Name: Trunk02_LOD3
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &3982538972298813775
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7554033982240888803}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 5
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &1053054428405342419
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7554033982240888803}
m_Mesh: {fileID: 4300010, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &5694077226521141991
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7554033982240888803}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 7c5582f518b614c49a85e0ad27e71a36, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &7802062648058181258
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 4321132719589123488}
- component: {fileID: 3819480294269868187}
- component: {fileID: 5765839138482118624}
m_Layer: 0
m_Name: Trunk02_LOD2
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &4321132719589123488
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7802062648058181258}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 4
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &3819480294269868187
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7802062648058181258}
m_Mesh: {fileID: 4300008, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &5765839138482118624
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 7802062648058181258}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 7c5582f518b614c49a85e0ad27e71a36, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0
--- !u!1 &8874973003002765225
GameObject:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
serializedVersion: 6
m_Component:
- component: {fileID: 1660264969606114752}
- component: {fileID: 2882915351189777026}
- component: {fileID: 1544894568365045167}
m_Layer: 0
m_Name: Trunk02_LOD0
m_TagString: Untagged
m_Icon: {fileID: 0}
m_NavMeshLayer: 0
m_StaticEditorFlags: 0
m_IsActive: 1
--- !u!4 &1660264969606114752
Transform:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8874973003002765225}
m_LocalRotation: {x: -0.7071068, y: 0, z: -0, w: 0.7071068}
m_LocalPosition: {x: -0, y: 0, z: 0}
m_LocalScale: {x: 1, y: 1, z: 1}
m_Children: []
m_Father: {fileID: 8853293102990191520}
m_RootOrder: 2
m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
--- !u!33 &2882915351189777026
MeshFilter:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8874973003002765225}
m_Mesh: {fileID: 4300004, guid: 9dcb662974bf65f46ac5d099aeb11c58, type: 3}
--- !u!23 &1544894568365045167
MeshRenderer:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 8874973003002765225}
m_Enabled: 1
m_CastShadows: 1
m_ReceiveShadows: 1
m_DynamicOccludee: 1
m_MotionVectors: 1
m_LightProbeUsage: 1
m_ReflectionProbeUsage: 1
m_RenderingLayerMask: 1
m_RendererPriority: 0
m_Materials:
- {fileID: 2100000, guid: 7c5582f518b614c49a85e0ad27e71a36, type: 2}
m_StaticBatchInfo:
firstSubMesh: 0
subMeshCount: 0
m_StaticBatchRoot: {fileID: 0}
m_ProbeAnchor: {fileID: 0}
m_LightProbeVolumeOverride: {fileID: 0}
m_ScaleInLightmap: 1
m_PreserveUVs: 0
m_IgnoreNormalsForChartDetection: 0
m_ImportantGI: 0
m_StitchLightmapSeams: 0
m_SelectedEditorRenderState: 3
m_MinimumChartSize: 4
m_AutoUVMaxDistance: 0.5
m_AutoUVMaxAngle: 89
m_LightmapParameters: {fileID: 0}
m_SortingLayerID: 0
m_SortingLayer: 0
m_SortingOrder: 0

7
Assets/Graph/Models/Trees/Tree_03_01.prefab.meta


fileFormatVersion: 2
guid: 84b1396fa3c9de54585079bb85f3c7fc
PrefabImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/ProBuilder Data.meta


fileFormatVersion: 2
guid: 3b420953e5d205d46ae24bab8744fcc5
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

8
Assets/ProCore.meta


fileFormatVersion: 2
guid: f0692d6fc0d30ee4781262dd1fdd45a1
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

816
Assets/Demo/Scripts/BasicWind/Shadergraphs/Branches_Wind.shadergraph
文件差异内容过多而无法显示
查看文件

8
Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs.meta


fileFormatVersion: 2
guid: f985648aec7adf34eb12a0a6341488b8
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

306
Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/BasicWind_Rotate.shadersubgraph


{
"m_SerializedProperties": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector3ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Rotation Axis\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"40fb92f7-be9a-4b29-abca-e02ac06b47c2\"\n },\n \"m_OverrideReferenceName\": \"_RotationAxis\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Angle\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"21ec7390-c2d7-4646-a8ad-ac3477f98b7d\"\n },\n \"m_OverrideReferenceName\": \"_Angle\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector1ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": 1.0,\n \"m_Name\": \"Attenuation\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"1e00a777-dea4-425d-b182-2382fd9b64ba\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_FloatType\": 0,\n \"m_RangeValues\": {\n \"x\": 0.0,\n \"y\": 1.0\n }\n}"
}
],
"m_GUID": {
"m_GuidSerialized": "065a29f7-d059-47bb-bc1c-b7752f300e66"
},
"m_SerializableNodes": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.SubGraphOutputNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"2984e4da-0c05-4cc2-84eb-c6ab625a3137\",\n \"m_Name\": \"SubGraphOutputs\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 661.5000610351563,\n \"y\": -61.7499885559082,\n \"width\": 141.0,\n \"height\": 167.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Output 1\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Output1\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.SubtractNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"3da2bc55-38af-466d-9a3b-688e9f1f0ee5\",\n \"m_Name\": \"Subtract\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -326.7044982910156,\n \"y\": -41.6245231628418,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 1.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.CosineNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"34aeaf9b-0c93-4914-8eee-c5492d707807\",\n \"m_Name\": \"Cosine\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -326.14990234375,\n \"y\": 84.9255599975586,\n \"width\": 124.0,\n \"height\": 94.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"In\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"In\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"67689031-db93-43f2-abeb-41a17d49ea90\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 12.792791366577149,\n \"y\": -9.50194263458252,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.AddNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"7a7ea055-680f-4dd5-ab95-bb3d1a8f9d77\",\n \"m_Name\": \"Add\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -506.76605224609377,\n \"y\": -184.34048461914063,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.AddNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"6b92b73e-ea7e-4045-9110-197fba94c149\",\n \"m_Name\": \"Add\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 208.3105010986328,\n \"y\": 20.34552001953125,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.NormalizeNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"01032d71-f8c5-4e44-b42a-8f0cb3220e1f\",\n \"m_Name\": \"Normalize\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -1072.6102294921875,\n \"y\": -224.02743530273438,\n \"width\": 124.0,\n \"height\": 94.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"In\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"In\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.DotProductNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"754a6939-013f-422b-b570-42b41095f45c\",\n \"m_Name\": \"Dot Product\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -883.3887329101563,\n \"y\": -125.04146575927735,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"7015be23-38c5-4704-8586-5b24c8fe89bd\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -702.2029418945313,\n \"y\": -155.28411865234376,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.ObjectNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"79747740-9726-427f-af96-b18e88b48f8d\",\n \"m_Name\": \"Object\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -661.5728149414063,\n \"y\": -267.848388671875,\n \"width\": 91.0,\n \"height\": 101.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Position\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Position\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Scale\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Scale\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"e4089304-6905-42ca-bc5f-6a10a80e5658\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -801.9320068359375,\n \"y\": 223.3414306640625,\n \"width\": 91.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Angle\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"21ec7390-c2d7-4646-a8ad-ac3477f98b7d\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PositionNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"4e9d5edd-7453-415e-9ca5-3981004365c4\",\n \"m_Name\": \"Position\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -1365.8526611328125,\n \"y\": 155.08299255371095,\n \"width\": 206.0,\n \"height\": 127.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false,\n \"m_Space\": 0\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"2b2721fe-f767-4750-b5ba-35a9bcc30491\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -1498.89599609375,\n \"y\": -76.2290267944336,\n \"width\": 117.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Rotation Axis\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"40fb92f7-be9a-4b29-abca-e02ac06b47c2\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.CrossProductNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"0075d31a-fda5-43bb-9e9b-8508bf725253\",\n \"m_Name\": \"Cross Product\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -144.8969268798828,\n \"y\": 218.25485229492188,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"3be6cc7a-b6cf-4f04-9239-361b7fa747f6\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 7.955625057220459,\n \"y\": 262.14581298828127,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.AddNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"ec04e66a-9ada-4aef-90f4-fb692d7f3c59\",\n \"m_Name\": \"Add\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 401.1955871582031,\n \"y\": -60.86207962036133,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.SineNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"64ee98ec-2f42-46cd-ab30-5ef3b0099181\",\n \"m_Name\": \"Sine\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -326.8345642089844,\n \"y\": 356.9653625488281,\n \"width\": 124.0,\n \"height\": 94.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"In\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"In\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"72131c14-249b-4404-b23c-0da1ba67a34f\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -660.0755615234375,\n \"y\": 235.43052673339845,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"b8877bb6-e3ce-44ae-8623-66660e78614b\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -818.3059692382813,\n \"y\": 314.5458068847656,\n \"width\": 110.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Attenuation\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"1e00a777-dea4-425d-b182-2382fd9b64ba\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.TransformNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"fdf60bf0-3106-4703-914a-af1230bbf27f\",\n \"m_Name\": \"Transform\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -1340.0804443359375,\n \"y\": -49.29060363769531,\n \"width\": 208.0,\n \"height\": 335.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"In\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"In\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false,\n \"m_Conversion\": {\n \"from\": 2,\n \"to\": 0\n },\n \"m_ConversionType\": 1\n}"
}
],
"m_SerializableEdges": [
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"7a7ea055-680f-4dd5-ab95-bb3d1a8f9d77\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"3da2bc55-38af-466d-9a3b-688e9f1f0ee5\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"3da2bc55-38af-466d-9a3b-688e9f1f0ee5\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"67689031-db93-43f2-abeb-41a17d49ea90\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"34aeaf9b-0c93-4914-8eee-c5492d707807\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"67689031-db93-43f2-abeb-41a17d49ea90\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"67689031-db93-43f2-abeb-41a17d49ea90\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"6b92b73e-ea7e-4045-9110-197fba94c149\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"7015be23-38c5-4704-8586-5b24c8fe89bd\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"7a7ea055-680f-4dd5-ab95-bb3d1a8f9d77\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"01032d71-f8c5-4e44-b42a-8f0cb3220e1f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"7015be23-38c5-4704-8586-5b24c8fe89bd\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"01032d71-f8c5-4e44-b42a-8f0cb3220e1f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"754a6939-013f-422b-b570-42b41095f45c\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"754a6939-013f-422b-b570-42b41095f45c\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"7015be23-38c5-4704-8586-5b24c8fe89bd\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"3da2bc55-38af-466d-9a3b-688e9f1f0ee5\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"0075d31a-fda5-43bb-9e9b-8508bf725253\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"0075d31a-fda5-43bb-9e9b-8508bf725253\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"3be6cc7a-b6cf-4f04-9239-361b7fa747f6\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"3be6cc7a-b6cf-4f04-9239-361b7fa747f6\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"6b92b73e-ea7e-4045-9110-197fba94c149\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"7a7ea055-680f-4dd5-ab95-bb3d1a8f9d77\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"ec04e66a-9ada-4aef-90f4-fb692d7f3c59\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"6b92b73e-ea7e-4045-9110-197fba94c149\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"ec04e66a-9ada-4aef-90f4-fb692d7f3c59\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"ec04e66a-9ada-4aef-90f4-fb692d7f3c59\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"2984e4da-0c05-4cc2-84eb-c6ab625a3137\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"79747740-9726-427f-af96-b18e88b48f8d\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"7a7ea055-680f-4dd5-ab95-bb3d1a8f9d77\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"4e9d5edd-7453-415e-9ca5-3981004365c4\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"754a6939-013f-422b-b570-42b41095f45c\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"64ee98ec-2f42-46cd-ab30-5ef3b0099181\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"3be6cc7a-b6cf-4f04-9239-361b7fa747f6\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"4e9d5edd-7453-415e-9ca5-3981004365c4\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"3da2bc55-38af-466d-9a3b-688e9f1f0ee5\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"72131c14-249b-4404-b23c-0da1ba67a34f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"64ee98ec-2f42-46cd-ab30-5ef3b0099181\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"72131c14-249b-4404-b23c-0da1ba67a34f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"34aeaf9b-0c93-4914-8eee-c5492d707807\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"e4089304-6905-42ca-bc5f-6a10a80e5658\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"72131c14-249b-4404-b23c-0da1ba67a34f\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"b8877bb6-e3ce-44ae-8623-66660e78614b\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"72131c14-249b-4404-b23c-0da1ba67a34f\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"fdf60bf0-3106-4703-914a-af1230bbf27f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"0075d31a-fda5-43bb-9e9b-8508bf725253\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"fdf60bf0-3106-4703-914a-af1230bbf27f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"01032d71-f8c5-4e44-b42a-8f0cb3220e1f\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"2b2721fe-f767-4750-b5ba-35a9bcc30491\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"fdf60bf0-3106-4703-914a-af1230bbf27f\"\n }\n}"
}
],
"m_PreviewData": {
"serializedMesh": {
"m_SerializedMesh": "",
"m_Guid": ""
}
},
"m_Path": "Sub Graphs"
}

216
Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/BasicWind_ShiverWind.shadersubgraph


{
"m_SerializedProperties": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector1ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": 0.0,\n \"m_Name\": \"Shiver Directionality\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"41f4c040-e2dc-40c5-aad9-9d318f4a2bef\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_FloatType\": 0,\n \"m_RangeValues\": {\n \"x\": 0.0,\n \"y\": 1.0\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Wind Direction\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"2459e4fa-bd52-4f19-83ef-7da1e42f3ab0\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Shiver Direction\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"b3944c1a-bf96-40f3-a119-a85f69158fa8\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Shiver Strength\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"12729c00-8120-4870-a57e-a77fe3d6d503\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector1ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": 0.0,\n \"m_Name\": \"Shiver Wind Mask\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"c82e12ec-4397-474a-8fe9-746ada2f77a4\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_FloatType\": 1,\n \"m_RangeValues\": {\n \"x\": 0.0,\n \"y\": 1.0\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector1ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": 1.0,\n \"m_Name\": \"Attenuation\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"01725f4a-7170-40d0-b2e2-51901ba96c6b\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_FloatType\": 0,\n \"m_RangeValues\": {\n \"x\": 0.0,\n \"y\": 1.0\n }\n}"
}
],
"m_GUID": {
"m_GuidSerialized": "37d55a50-b8fd-449a-801b-17c4b60b3e40"
},
"m_SerializableNodes": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.SubGraphOutputNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"e80594e3-c206-4928-95ac-011e441a3af1\",\n \"m_Name\": \"SubGraphOutputs\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 641.0950927734375,\n \"y\": -79.0,\n \"width\": 208.0,\n \"height\": 351.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Output 1\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Output1\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"95e7d627-e690-4318-82fa-6e61483d33d9\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 98.5849609375,\n \"y\": -186.3802490234375,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"f5783bb9-d776-4162-9266-47003827a976\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 267.0950927734375,\n \"y\": -77.082275390625,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.NormalizeNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"c009dcd6-c954-4064-9d1b-7435dcf3f99d\",\n \"m_Name\": \"Normalize\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -241.14495849609376,\n \"y\": -138.6727294921875,\n \"width\": 124.0,\n \"height\": 94.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"In\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"In\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.LerpNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"36dc9e39-0555-4afb-8e6e-88fdd295b3c2\",\n \"m_Name\": \"Lerp\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -82.2650146484375,\n \"y\": -175.66030883789063,\n \"width\": 122.0,\n \"height\": 142.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 1.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"T\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"T\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.AddNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"9b279e23-d186-4610-bdaf-a2f27954fe07\",\n \"m_Name\": \"Add\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -394.0950927734375,\n \"y\": -142.1226806640625,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"6cc3eadd-85e5-462e-8511-24661db547a3\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -69.0950927734375,\n \"y\": -267.0,\n \"width\": 102.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Shiver Strength\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"12729c00-8120-4870-a57e-a77fe3d6d503\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"6fc73722-1bae-4492-90f6-3a235e2a084c\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -272.0950927734375,\n \"y\": -40.0,\n \"width\": 151.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Shiver Directionality\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"41f4c040-e2dc-40c5-aad9-9d318f4a2bef\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"936571ac-be28-4841-9594-1e74f29977b7\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -589.0950927734375,\n \"y\": -159.0,\n \"width\": 125.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Wind Direction\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"2459e4fa-bd52-4f19-83ef-7da1e42f3ab0\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"2ec3ec26-f24d-47cf-adc5-b1d3e5620606\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -591.0950927734375,\n \"y\": -63.0,\n \"width\": 130.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Shiver Direction\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"b3944c1a-bf96-40f3-a119-a85f69158fa8\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"041d57e0-1bd8-416b-a79e-c5e7973f0af7\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 93.5,\n \"y\": -0.5,\n \"width\": 139.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Shiver Wind Mask\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"c82e12ec-4397-474a-8fe9-746ada2f77a4\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.NormalVectorNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"aaa08915-0138-4bc8-852f-4ca0d1260223\",\n \"m_Name\": \"Normal Vector\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -324.5,\n \"y\": -274.5,\n \"width\": 206.0,\n \"height\": 127.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector3MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0\\n },\\n \\\"m_Labels\\\": [\\n \\\"X\\\",\\n \\\"Y\\\",\\n \\\"Z\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false,\n \"m_Space\": 0\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"17cb7461-13ce-43fa-b2d2-700ea7c05cbd\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 279.5,\n \"y\": 51.5,\n \"width\": 110.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Attenuation\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"01725f4a-7170-40d0-b2e2-51901ba96c6b\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.MultiplyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"5baf777e-fcf7-4963-bbe8-65bbebdc3fae\",\n \"m_Name\": \"Multiply\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 447.5,\n \"y\": -77.5,\n \"width\": 122.0,\n \"height\": 118.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 2.0,\\n \\\"e01\\\": 2.0,\\n \\\"e02\\\": 2.0,\\n \\\"e03\\\": 2.0,\\n \\\"e10\\\": 2.0,\\n \\\"e11\\\": 2.0,\\n \\\"e12\\\": 2.0,\\n \\\"e13\\\": 2.0,\\n \\\"e20\\\": 2.0,\\n \\\"e21\\\": 2.0,\\n \\\"e22\\\": 2.0,\\n \\\"e23\\\": 2.0,\\n \\\"e30\\\": 2.0,\\n \\\"e31\\\": 2.0,\\n \\\"e32\\\": 2.0,\\n \\\"e33\\\": 2.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicValueMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"e00\\\": 0.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 0.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 0.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"e00\\\": 1.0,\\n \\\"e01\\\": 0.0,\\n \\\"e02\\\": 0.0,\\n \\\"e03\\\": 0.0,\\n \\\"e10\\\": 0.0,\\n \\\"e11\\\": 1.0,\\n \\\"e12\\\": 0.0,\\n \\\"e13\\\": 0.0,\\n \\\"e20\\\": 0.0,\\n \\\"e21\\\": 0.0,\\n \\\"e22\\\": 1.0,\\n \\\"e23\\\": 0.0,\\n \\\"e30\\\": 0.0,\\n \\\"e31\\\": 0.0,\\n \\\"e32\\\": 0.0,\\n \\\"e33\\\": 1.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
}
],
"m_SerializableEdges": [
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"36dc9e39-0555-4afb-8e6e-88fdd295b3c2\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"95e7d627-e690-4318-82fa-6e61483d33d9\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"95e7d627-e690-4318-82fa-6e61483d33d9\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"f5783bb9-d776-4162-9266-47003827a976\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"9b279e23-d186-4610-bdaf-a2f27954fe07\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"c009dcd6-c954-4064-9d1b-7435dcf3f99d\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"c009dcd6-c954-4064-9d1b-7435dcf3f99d\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"36dc9e39-0555-4afb-8e6e-88fdd295b3c2\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"6cc3eadd-85e5-462e-8511-24661db547a3\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"95e7d627-e690-4318-82fa-6e61483d33d9\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"6fc73722-1bae-4492-90f6-3a235e2a084c\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"36dc9e39-0555-4afb-8e6e-88fdd295b3c2\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"936571ac-be28-4841-9594-1e74f29977b7\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"9b279e23-d186-4610-bdaf-a2f27954fe07\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"2ec3ec26-f24d-47cf-adc5-b1d3e5620606\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"9b279e23-d186-4610-bdaf-a2f27954fe07\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"041d57e0-1bd8-416b-a79e-c5e7973f0af7\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"f5783bb9-d776-4162-9266-47003827a976\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"aaa08915-0138-4bc8-852f-4ca0d1260223\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"36dc9e39-0555-4afb-8e6e-88fdd295b3c2\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"f5783bb9-d776-4162-9266-47003827a976\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"5baf777e-fcf7-4963-bbe8-65bbebdc3fae\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"5baf777e-fcf7-4963-bbe8-65bbebdc3fae\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"e80594e3-c206-4928-95ac-011e441a3af1\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"17cb7461-13ce-43fa-b2d2-700ea7c05cbd\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"5baf777e-fcf7-4963-bbe8-65bbebdc3fae\"\n }\n}"
}
],
"m_PreviewData": {
"serializedMesh": {
"m_SerializedMesh": "",
"m_Guid": ""
}
},
"m_Path": "Sub Graphs"
}

252
Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/FoliageShadingBlend.shadersubgraph


{
"m_SerializedProperties": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 1.0,\n \"y\": 1.0,\n \"z\": 1.0,\n \"w\": 1.0\n },\n \"m_Name\": \"Base Color 1\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"dae2aa51-d05e-407d-8650-7fa561310ead\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.5,\n \"y\": 0.5,\n \"z\": 1.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Normal 1\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"8756035f-5e61-467a-baee-b6f9f7baf818\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.5,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Smoothness 1\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"ede1e391-1aea-41be-838a-6f09e6618016\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 1.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Ambient Occlusion 1\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"4e04f172-36bc-42eb-be90-be515473fbd8\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 1.0,\n \"y\": 1.0,\n \"z\": 1.0,\n \"w\": 1.0\n },\n \"m_Name\": \"Base Color 2\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"df281ae0-ef40-4be3-b929-134fe595dbae\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.5,\n \"y\": 0.5,\n \"z\": 1.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Normal 2\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"6979ff0e-9b01-498f-b9bf-44520deb3500\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 0.5,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Smoothness 2\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"1788fa69-e9e0-4471-a44c-9b94c7e9505f\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector4ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": {\n \"x\": 1.0,\n \"y\": 0.0,\n \"z\": 0.0,\n \"w\": 0.0\n },\n \"m_Name\": \"Ambient Occlusion 2\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"13b74d94-357a-4cd2-96ed-8ad33e206e92\"\n },\n \"m_OverrideReferenceName\": \"\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.Vector1ShaderProperty"
},
"JSONnodeData": "{\n \"m_Value\": 0.5,\n \"m_Name\": \"Blend Mask\",\n \"m_GeneratePropertyBlock\": true,\n \"m_Guid\": {\n \"m_GuidSerialized\": \"3bdf5081-be33-4893-ae8d-5af514ef111f\"\n },\n \"m_OverrideReferenceName\": \"\",\n \"m_FloatType\": 1,\n \"m_RangeValues\": {\n \"x\": 0.0,\n \"y\": 1.0\n }\n}"
}
],
"m_GUID": {
"m_GuidSerialized": "807c6279-24a0-47d9-a3cd-f9486003266b"
},
"m_SerializableNodes": [
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.SubGraphOutputNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"4c5bfb85-4892-48f2-8802-a457924ce0d5\",\n \"m_Name\": \"SubGraphOutputs\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": 0.0,\n \"y\": 0.0,\n \"width\": 0.0,\n \"height\": 0.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"Output 1\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Output1\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"Output 2\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Output2\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Output 3\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Output3\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 4,\\n \\\"m_DisplayName\\\": \\\"Output 4\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Output4\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"a653aae2-073e-4d33-a143-b4c87339c43b\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -918.6152954101563,\n \"y\": -193.43490600585938,\n \"width\": 113.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Base Color 1\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"dae2aa51-d05e-407d-8650-7fa561310ead\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.LerpNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"92c0c109-450c-4d4c-92bf-2162d2727ff7\",\n \"m_Name\": \"Lerp\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -440.21502685546877,\n \"y\": -150.8848876953125,\n \"width\": 122.0,\n \"height\": 142.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 1.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"T\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"T\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.LerpNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"c2d811aa-d76c-4363-b4e7-8bf7429381e0\",\n \"m_Name\": \"Lerp\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -440.1150817871094,\n \"y\": 1.0151259899139405,\n \"width\": 122.0,\n \"height\": 142.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 1.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"T\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"T\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.LerpNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"08a5202e-37d1-43d4-85e4-c29ecec71084\",\n \"m_Name\": \"Lerp\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -436.5652770996094,\n \"y\": 151.76512145996095,\n \"width\": 122.0,\n \"height\": 142.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 1.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"T\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"T\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.LerpNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"bf2310fd-882b-448e-b1bc-76bcb992d516\",\n \"m_Name\": \"Lerp\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -431.8653259277344,\n \"y\": 302.5151672363281,\n \"width\": 122.0,\n \"height\": 142.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"A\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"A\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 1,\\n \\\"m_DisplayName\\\": \\\"B\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"B\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 1.0,\\n \\\"y\\\": 1.0,\\n \\\"z\\\": 1.0,\\n \\\"w\\\": 1.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 2,\\n \\\"m_DisplayName\\\": \\\"T\\\",\\n \\\"m_SlotType\\\": 0,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"T\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n },\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.DynamicVectorMaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 3,\\n \\\"m_DisplayName\\\": \\\"Out\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": false\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"6d5e9e5b-1294-4321-8e3b-e5c7fcc57d2d\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -925.5150756835938,\n \"y\": -28.98486328125,\n \"width\": 97.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Normal 1\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"8756035f-5e61-467a-baee-b6f9f7baf818\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"b2cd7ea6-7bc1-444b-9762-2109b2928878\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -930.1154174804688,\n \"y\": 293.0152282714844,\n \"width\": 152.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Ambient Occlusion 1\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"4e04f172-36bc-42eb-be90-be515473fbd8\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"1b295d44-ec26-4077-af59-663794971e38\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -762.2149658203125,\n \"y\": 480.4651794433594,\n \"width\": 108.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector1MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Blend Mask\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": 0.0,\\n \\\"m_DefaultValue\\\": 0.0,\\n \\\"m_Labels\\\": [\\n \\\"X\\\"\\n ]\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"3bdf5081-be33-4893-ae8d-5af514ef111f\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"06afe398-a1d2-4a6b-8a75-9d95594d4217\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -931.2652587890625,\n \"y\": 127.41515350341797,\n \"width\": 120.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Smoothness 1\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"ede1e391-1aea-41be-838a-6f09e6618016\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"d2fa667e-4837-4b31-bca9-8a3daa4a84f5\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -923.2149047851563,\n \"y\": -112.93486785888672,\n \"width\": 113.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Base Color 2\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"df281ae0-ef40-4be3-b929-134fe595dbae\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"d63d35e5-bd05-476b-8c3f-2c9a37ed6cc3\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -922.0650024414063,\n \"y\": 46.91514205932617,\n \"width\": 97.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Normal 2\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"6979ff0e-9b01-498f-b9bf-44520deb3500\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"6e3cdc94-c9af-4f79-b8e5-25db212ef506\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -926.6649780273438,\n \"y\": 205.6151580810547,\n \"width\": 120.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Smoothness 2\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"1788fa69-e9e0-4471-a44c-9b94c7e9505f\"\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.ShaderGraph.PropertyNode"
},
"JSONnodeData": "{\n \"m_GuidSerialized\": \"e7dbd7aa-2f8e-4df1-8b85-91e66f61874f\",\n \"m_Name\": \"Property\",\n \"m_DrawState\": {\n \"m_Expanded\": true,\n \"m_Position\": {\n \"serializedVersion\": \"2\",\n \"x\": -919.7650756835938,\n \"y\": 373.5151672363281,\n \"width\": 152.0,\n \"height\": 77.0\n }\n },\n \"m_SerializableSlots\": [\n {\n \"typeInfo\": {\n \"fullName\": \"UnityEditor.ShaderGraph.Vector4MaterialSlot\"\n },\n \"JSONnodeData\": \"{\\n \\\"m_Id\\\": 0,\\n \\\"m_DisplayName\\\": \\\"Ambient Occlusion 2\\\",\\n \\\"m_SlotType\\\": 1,\\n \\\"m_Priority\\\": 2147483647,\\n \\\"m_Hidden\\\": false,\\n \\\"m_ShaderOutputName\\\": \\\"Out\\\",\\n \\\"m_StageCapability\\\": 3,\\n \\\"m_Value\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n },\\n \\\"m_DefaultValue\\\": {\\n \\\"x\\\": 0.0,\\n \\\"y\\\": 0.0,\\n \\\"z\\\": 0.0,\\n \\\"w\\\": 0.0\\n }\\n}\"\n }\n ],\n \"m_PreviewExpanded\": true,\n \"m_PropertyGuidSerialized\": \"13b74d94-357a-4cd2-96ed-8ad33e206e92\"\n}"
}
],
"m_SerializableEdges": [
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"a653aae2-073e-4d33-a143-b4c87339c43b\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"92c0c109-450c-4d4c-92bf-2162d2727ff7\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"6d5e9e5b-1294-4321-8e3b-e5c7fcc57d2d\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"c2d811aa-d76c-4363-b4e7-8bf7429381e0\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"b2cd7ea6-7bc1-444b-9762-2109b2928878\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"bf2310fd-882b-448e-b1bc-76bcb992d516\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"06afe398-a1d2-4a6b-8a75-9d95594d4217\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"08a5202e-37d1-43d4-85e4-c29ecec71084\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"92c0c109-450c-4d4c-92bf-2162d2727ff7\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"4c5bfb85-4892-48f2-8802-a457924ce0d5\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"c2d811aa-d76c-4363-b4e7-8bf7429381e0\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"4c5bfb85-4892-48f2-8802-a457924ce0d5\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"08a5202e-37d1-43d4-85e4-c29ecec71084\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"4c5bfb85-4892-48f2-8802-a457924ce0d5\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 3,\n \"m_NodeGUIDSerialized\": \"bf2310fd-882b-448e-b1bc-76bcb992d516\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 4,\n \"m_NodeGUIDSerialized\": \"4c5bfb85-4892-48f2-8802-a457924ce0d5\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"1b295d44-ec26-4077-af59-663794971e38\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"bf2310fd-882b-448e-b1bc-76bcb992d516\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"1b295d44-ec26-4077-af59-663794971e38\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"08a5202e-37d1-43d4-85e4-c29ecec71084\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"1b295d44-ec26-4077-af59-663794971e38\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"c2d811aa-d76c-4363-b4e7-8bf7429381e0\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"1b295d44-ec26-4077-af59-663794971e38\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 2,\n \"m_NodeGUIDSerialized\": \"92c0c109-450c-4d4c-92bf-2162d2727ff7\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"d2fa667e-4837-4b31-bca9-8a3daa4a84f5\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"92c0c109-450c-4d4c-92bf-2162d2727ff7\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"d63d35e5-bd05-476b-8c3f-2c9a37ed6cc3\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"c2d811aa-d76c-4363-b4e7-8bf7429381e0\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"6e3cdc94-c9af-4f79-b8e5-25db212ef506\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"08a5202e-37d1-43d4-85e4-c29ecec71084\"\n }\n}"
},
{
"typeInfo": {
"fullName": "UnityEditor.Graphing.Edge"
},
"JSONnodeData": "{\n \"m_OutputSlot\": {\n \"m_SlotId\": 0,\n \"m_NodeGUIDSerialized\": \"e7dbd7aa-2f8e-4df1-8b85-91e66f61874f\"\n },\n \"m_InputSlot\": {\n \"m_SlotId\": 1,\n \"m_NodeGUIDSerialized\": \"bf2310fd-882b-448e-b1bc-76bcb992d516\"\n }\n}"
}
],
"m_PreviewData": {
"serializedMesh": {
"m_SerializedMesh": "",
"m_Guid": ""
}
},
"m_Path": "Sub Graphs"
}

10
Assets/Demo/Scripts/BasicWind/Shadergraphs/SubGraphs/FoliageShadingBlend.shadersubgraph.meta


fileFormatVersion: 2
guid: 84fdcfda7a3b619488b9332a7f404d16
ScriptedImporter:
fileIDToRecycleName:
11400000: MainAsset
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:
script: {fileID: 11500000, guid: 60072b568d64c40a485e0fc55012dc9f, type: 3}

726
Assets/Demo/Scripts/BasicWind/Shadergraphs/Trunk_Wind.shadergraph
文件差异内容过多而无法显示
查看文件

32
Assets/ProBuilder Data/ProBuilderPreferences.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 680703436, guid: 4f0627da958b4bb78c260446066f065f, type: 3}
m_Name: ProBuilderPreferences
m_EditorClassIdentifier:
m_Bool_keys: []
m_Int_keys:
- pbDefaultEditLevel
- pbHandleAlignment
m_Float_keys:
- pbEditorScroll.x
- pbEditorScroll.y
m_String_keys: []
m_Color_keys: []
m_Material_keys: []
m_Bool_values: []
m_Int_values: 0000000000000000
m_Float_values:
- 0
- 0
m_String_values: []
m_Color_values: []
m_Material_values: []

8
Assets/ProBuilder Data/ProBuilderPreferences.asset.meta


fileFormatVersion: 2
guid: d78d33aece4ad4141a17ed87e1a5f254
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

9
Assets/ProCore/Polybrush.meta


fileFormatVersion: 2
guid: e88df36e2b19b854eb1458fd08552791
folderAsset: yes
timeCreated: 1444938565
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

8
Assets/ProCore/Polybrush/Brush Settings.meta


fileFormatVersion: 2
guid: 0d82fb2ac2a98e949b62da40522540a6
folderAsset: yes
DefaultImporter:
externalObjects: {}
userData:
assetBundleName:
assetBundleVariant:

44
Assets/ProCore/Polybrush/Brush Settings/Default.asset


%YAML 1.1
%TAG !u! tag:unity3d.com,2011:
--- !u!114 &11400000
MonoBehaviour:
m_ObjectHideFlags: 0
m_CorrespondingSourceObject: {fileID: 0}
m_PrefabInstance: {fileID: 0}
m_PrefabAsset: {fileID: 0}
m_GameObject: {fileID: 0}
m_Enabled: 1
m_EditorHideFlags: 0
m_Script: {fileID: 11500000, guid: 0c229c73eab51b9478029375e5ca314a, type: 3}
m_Name: Default
m_EditorClassIdentifier:
brushRadiusMin: 0.001
brushRadiusMax: 5
_radius: 1
_falloff: 0.5
_strength: 1
_curve:
serializedVersion: 2
m_Curve:
- serializedVersion: 3
time: 0
value: 1
inSlope: 0
outSlope: 0
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
- serializedVersion: 3
time: 1
value: 0
inSlope: -3
outSlope: -3
tangentMode: 0
weightedMode: 0
inWeight: 0
outWeight: 0
m_PreInfinity: 2
m_PostInfinity: 2
m_RotationOrder: 4
allowNonNormalizedFalloff: 0

8
Assets/ProCore/Polybrush/Brush Settings/Default.asset.meta


fileFormatVersion: 2
guid: 58bb895ace3e4e7498e4bd4926eec7a6
NativeFormatImporter:
externalObjects: {}
mainObjectFileID: 11400000
userData:
assetBundleName:
assetBundleVariant:

9
Assets/ProCore/Polybrush/Code.meta


fileFormatVersion: 2
guid: c173ce858118bfd4cad923b0608a888b
folderAsset: yes
timeCreated: 1444938570
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
Assets/ProCore/Polybrush/Code/Editor.meta


fileFormatVersion: 2
guid: 7416ccb9a80991e4fb5678884b5098d2
folderAsset: yes
timeCreated: 1444938577
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

9
Assets/ProCore/Polybrush/Code/Editor/Brush Modes.meta


fileFormatVersion: 2
guid: b408c10689a2f164fa20aaf168c0872f
folderAsset: yes
timeCreated: 1447947185
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

206
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushMode.cs


// #define Z_DEBUG
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Polybrush
{
/**
* Base class for brush modes.
*/
[System.Serializable]
public abstract class z_BrushMode : ScriptableObject
{
// The message that will accompany Undo commands for this brush. Undo/Redo is handled by z_Editor.
public virtual string UndoMessage { get { return "Apply Brush"; } }
// A temporary component attached to the currently editing object. Use this to (by default) override the
// scene zoom functionality, or optionally extend (see z_OverlayRenderer).
[SerializeField] protected z_ZoomOverride tempComponent;
// The title to be displayed in the settings header.
protected abstract string ModeSettingsHeader { get; }
// The link to the documentation page for this mode.
protected abstract string DocsLink { get; }
protected Color innerColor, outerColor;
protected virtual void CreateTempComponent(z_EditableObject target, z_BrushSettings settings)
{
if(!z_Util.IsValid(target))
return;
tempComponent = target.gameObject.AddComponent<z_ZoomOverride>();
tempComponent.hideFlags = HideFlags.HideAndDontSave;
tempComponent.SetWeights(null, 0f);
}
protected virtual void UpdateTempComponent(z_BrushTarget target, z_BrushSettings settings)
{
if(!z_Util.IsValid(target))
return;
tempComponent.SetWeights(target.GetAllWeights(), settings.strength);
}
protected virtual void DestroyTempComponent()
{
if(tempComponent != null)
GameObject.DestroyImmediate(tempComponent);
}
// Called on instantiation. Base implementation sets HideFlags.
public virtual void OnEnable()
{
this.hideFlags = HideFlags.HideAndDontSave;
innerColor = z_Pref.GetColor(z_Pref.brushColor);
outerColor = z_Pref.GetGradient(z_Pref.brushGradient).Evaluate(1f);
innerColor.a = .9f;
outerColor.a = .35f;
}
// Called when mode is disabled.
public virtual void OnDisable()
{
DestroyTempComponent();
}
// Called by z_Editor when brush settings have been modified.
public virtual void OnBrushSettingsChanged(z_BrushTarget target, z_BrushSettings settings)
{
UpdateTempComponent(target, settings);
}
// Inspector GUI shown in the Editor window.
public virtual void DrawGUI(z_BrushSettings brushSettings)
{
if( z_GUILayout.HeaderWithDocsLink( z_GUI.TempContent(ModeSettingsHeader, "")) )
Application.OpenURL(DocsLink);
}
// Called when the mouse begins hovering an editable object.
public virtual void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
if(z_Pref.GetBool(z_Pref.hideWireframe) && target.renderer != null)
{
// disable wirefame
z_EditorUtility.SetSelectionRenderState(target.renderer, z_EditorUtility.GetSelectionRenderState() & z_SelectionRenderState.Outline);
}
CreateTempComponent(target, settings);
}
// Called whenever the brush is moved. Note that @target may have a null editableObject.
public virtual void OnBrushMove(z_BrushTarget target, z_BrushSettings settings)
{
UpdateTempComponent(target, settings);
}
// Called when the mouse exits hovering an editable object.
public virtual void OnBrushExit(z_EditableObject target)
{
if(target.renderer != null)
z_EditorUtility.SetSelectionRenderState(target.renderer, z_EditorUtility.GetSelectionRenderState());
DestroyTempComponent();
}
// Called when the mouse begins a drag across a valid target.
public virtual void OnBrushBeginApply(z_BrushTarget target, z_BrushSettings settings) {}
// Called every time the brush should apply itself to a valid target. Default is on mouse move.
public abstract void OnBrushApply(z_BrushTarget target, z_BrushSettings settings);
// Called when a brush application has finished. Use this to clean up temporary resources or apply
// deferred actions to a mesh (rebuild UV2, tangents, whatever).
public virtual void OnBrushFinishApply(z_BrushTarget target, z_BrushSettings settings)
{
DestroyTempComponent();
}
// Draw scene gizmos. Base implementation draws the brush preview.
public virtual void DrawGizmos(z_BrushTarget target, z_BrushSettings settings)
{
foreach(z_RaycastHit hit in target.raycastHits)
z_Handles.DrawBrush(hit.position, hit.normal, settings, target.localToWorldMatrix, innerColor, outerColor);
#if Z_DEBUG
#if Z_DRAW_WEIGHTS || DRAW_PER_VERTEX_ATTRIBUTES
float[] w = target.GetAllWeights();
#endif
#if Z_DRAW_WEIGHTS
Mesh m = target.mesh;
Vector3[] v = m.vertices;
GUIContent content = new GUIContent("","");
Handles.BeginGUI();
for(int i = 0; i < v.Length; i++)
{
if(w[i] < .0001f)
continue;
content.text = w[i].ToString("F2");
GUI.Label(HandleUtility.WorldPointToSizedRect(target.transform.TransformPoint(v[i]), content, EditorStyles.label), content);
}
Handles.EndGUI();
#endif
#if DRAW_PER_VERTEX_ATTRIBUTES
z_Mesh m = target.editableObject.editMesh;
Color32[] colors = m.colors;
Vector4[] tangents = m.tangents;
List<Vector4> uv0 = m.uv0;
List<Vector4> uv1 = m.uv1;
List<Vector4> uv2 = m.uv2;
List<Vector4> uv3 = m.uv3;
int vertexCount = m.vertexCount;
Vector3[] verts = m.vertices;
GUIContent gc = new GUIContent("");
List<List<int>> common = z_MeshUtility.GetCommonVertices(m);
System.Text.StringBuilder sb = new System.Text.StringBuilder();
Handles.BeginGUI();
foreach(List<int> l in common)
{
if( w[l[0]] < .001 )
continue;
Vector3 v = target.transform.TransformPoint(verts[l[0]]);
if(colors != null) sb.AppendLine("color: " + colors[l[0]].ToString("F2"));
if(tangents != null) sb.AppendLine("tangent: " + tangents[l[0]].ToString("F2"));
if(uv0 != null && uv0.Count == vertexCount) sb.AppendLine("uv0: " + uv0[l[0]].ToString("F2"));
if(uv1 != null && uv1.Count == vertexCount) sb.AppendLine("uv1: " + uv1[l[0]].ToString("F2"));
if(uv2 != null && uv2.Count == vertexCount) sb.AppendLine("uv2: " + uv2[l[0]].ToString("F2"));
if(uv3 != null && uv3.Count == vertexCount) sb.AppendLine("uv3: " + uv3[l[0]].ToString("F2"));
gc.text = sb.ToString();
sb.Remove(0, sb.Length); // @todo .NET 4.0
GUI.Label(HandleUtility.WorldPointToSizedRect(v, gc, EditorStyles.label), gc);
}
Handles.EndGUI();
#endif
#endif
}
public abstract void RegisterUndo(z_BrushTarget brushTarget);
public virtual void UndoRedoPerformed(List<GameObject> modified)
{
DestroyTempComponent();
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushMode.cs.meta


fileFormatVersion: 2
guid: ef7af1d5fe5c313488bb9b9ebc72fd2c
timeCreated: 1445433619
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

94
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeMesh.cs


using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace Polybrush
{
/**
* Base class for brush modes that modify the mesh.
*/
[System.Serializable]
public abstract class z_BrushModeMesh : z_BrushMode
{
// All meshes that have ever been modified, ever. Kept around to refresh mesh vertices
// on Undo/Redo since Unity doesn't.
private HashSet<Mesh> modifiedMeshes = new HashSet<Mesh>();
private HashSet<object> modifiedPbMeshes = new HashSet<object>();
EditorWindow _pbEditor = null;
public override void OnBrushBeginApply(z_BrushTarget brushTarget, z_BrushSettings brushSettings)
{
_pbEditor = z_ReflectionUtil.ProBuilderEditorWindow;
base.OnBrushBeginApply(brushTarget, brushSettings);
}
public override void OnBrushApply(z_BrushTarget brushTarget, z_BrushSettings brushSettings)
{
// false means no ToMesh or Refresh, true does. Optional addl bool runs pb_Object.Optimize()
brushTarget.editableObject.Apply(true);
if(_pbEditor != null)
z_ReflectionUtil.Invoke(_pbEditor, "Internal_UpdateSelectionFast", BindingFlags.Instance | BindingFlags.NonPublic);
UpdateTempComponent(brushTarget, brushSettings);
}
public override void RegisterUndo(z_BrushTarget brushTarget)
{
if(z_ReflectionUtil.IsProBuilderObject(brushTarget.gameObject))
{
object pb = z_ReflectionUtil.GetComponent(brushTarget.gameObject, "pb_Object");
Undo.RegisterCompleteObjectUndo(pb as UnityEngine.Object, UndoMessage);
modifiedPbMeshes.Add(pb);
}
else
{
Undo.RegisterCompleteObjectUndo(brushTarget.editableObject.graphicsMesh, UndoMessage);
modifiedMeshes.Add(brushTarget.editableObject.graphicsMesh);
}
brushTarget.editableObject.isDirty = true;
}
public override void UndoRedoPerformed(List<GameObject> modified)
{
modifiedMeshes = new HashSet<Mesh>(modifiedMeshes.Where(x => x != null));
if(z_ReflectionUtil.ProBuilderExists())
{
// delete & undo causes cases where object is not null but the reference to it's pb_Object is
HashSet<object> remove = new HashSet<object>();
foreach(object pb in modifiedPbMeshes)
{
try
{
z_ReflectionUtil.ProBuilder_ToMesh(pb);
z_ReflectionUtil.ProBuilder_Refresh(pb);
z_ReflectionUtil.ProBuilder_Optimize(pb);
}
catch
{
remove.Add(pb);
}
}
if(remove.Count() > 0)
modifiedPbMeshes.SymmetricExceptWith(remove);
}
foreach(Mesh m in modifiedMeshes)
{
m.vertices = m.vertices;
m.UploadMeshData(false);
}
base.UndoRedoPerformed(modified);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeMesh.cs.meta


fileFormatVersion: 2
guid: 28a002c53bdb2204f8ff3786a5af1b27
timeCreated: 1447956411
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

393
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePaint.cs


using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Polybrush
{
/**
* Vertex painter brush mode.
*/
public class z_BrushModePaint : z_BrushModeMesh
{
// how many applications it should take to reach the full strength
const float STRENGTH_MODIFIER = 1f/8f;
private static readonly Color32 WHITE = new Color32(255, 255, 255, 255);
[SerializeField] z_PaintMode paintMode = z_PaintMode.Brush;
[SerializeField] bool likelySupportsVertexColors = false;
// mesh vertex colors
[SerializeField] Color32[] colors_cache = null, target_colors = null, erase_colors = null, colors = null;
[SerializeField] Color32 brushColor = Color.green;
z_ColorMask mask = new z_ColorMask(true, true, true, true);
z_ColorPalette[] availablePalettes = null;
string[] availablePalettes_str = null;
int currentPaletteIndex = -1;
// temp vars
private z_Edge[] _fillModeEdges = new z_Edge[3];
private List<int> _fillModeAdjacentTris = null;
// used for fill mode
Dictionary<z_Edge, List<int>> triangleLookup = null;
public GUIContent[] modeIcons = new GUIContent[]
{
new GUIContent("Brush", "Brush" ),
new GUIContent("Fill", "Fill" ),
new GUIContent("Flood", "Flood" )
};
// The current color palette.
[SerializeField] z_ColorPalette _colorPalette = null;
private z_ColorPalette colorPalette
{
get
{
if(_colorPalette == null)
colorPalette = z_EditorUtility.GetDefaultAsset<z_ColorPalette>("Color Palettes/Default.asset");
return _colorPalette;
}
set
{
_colorPalette = value;
}
}
// An Editor for the colorPalette.
[SerializeField] z_ColorPaletteEditor _colorPaletteEditor = null;
private z_ColorPaletteEditor colorPaletteEditor
{
get
{
if(_colorPaletteEditor == null || _colorPaletteEditor.target != colorPalette)
{
_colorPaletteEditor = (z_ColorPaletteEditor) Editor.CreateEditor(colorPalette);
_colorPaletteEditor.hideFlags = HideFlags.HideAndDontSave;
}
return _colorPaletteEditor;
}
}
// The message that will accompany Undo commands for this brush. Undo/Redo is handled by z_Editor.
public override string UndoMessage { get { return "Paint Brush"; } }
protected override string ModeSettingsHeader { get { return "Paint Settings"; } }
protected override string DocsLink { get { return "http://procore3d.github.io/polybrush/modes/color/"; } }
public override void OnEnable()
{
base.OnEnable();
//modeIcons[0].image = z_IconUtility.GetIcon("Icon/Brush");
//modeIcons[1].image = z_IconUtility.GetIcon("Icon/Roller");
//modeIcons[2].image = z_IconUtility.GetIcon("Icon/Flood");
RefreshAvailablePalettes();
}
public override void OnDisable()
{
base.OnDisable();
if(_colorPaletteEditor != null)
Object.DestroyImmediate(_colorPaletteEditor);
}
// Inspector GUI shown in the Editor window. Base class shows z_BrushSettings by default
public override void DrawGUI(z_BrushSettings brushSettings)
{
base.DrawGUI(brushSettings);
GUILayout.BeginHorizontal();
if(colorPalette == null)
RefreshAvailablePalettes();
EditorGUI.BeginChangeCheck();
currentPaletteIndex = EditorGUILayout.Popup(currentPaletteIndex, availablePalettes_str, "popup");
if(EditorGUI.EndChangeCheck())
{
if(currentPaletteIndex >= availablePalettes.Length)
SetColorPalette( z_ColorPaletteEditor.AddNew() );
else
SetColorPalette(availablePalettes[currentPaletteIndex]);
}
paintMode = (z_PaintMode) GUILayout.Toolbar( (int) paintMode, modeIcons, "Command", GUILayout.Width(120));
GUILayout.EndHorizontal();
if(!likelySupportsVertexColors)
EditorGUILayout.HelpBox("It doesn't look like any of the materials on this object support vertex colors!", MessageType.Warning);
colorPaletteEditor.onSelectIndex = (color) => { SetBrushColor(color, brushSettings.strength); };
colorPaletteEditor.onSaveAs = SetColorPalette;
mask = z_GUILayout.ColorMaskField("Color Mask", mask);
colorPaletteEditor.OnInspectorGUI();
}
private void SetBrushColor(Color color, float strength)
{
brushColor = color;
RebuildColorTargets(color, strength);
}
private void RefreshAvailablePalettes()
{
if(colorPalette == null)
colorPalette = z_EditorUtility.GetDefaultAsset<z_ColorPalette>("Color Palettes/Default.asset");
availablePalettes = Resources.FindObjectsOfTypeAll<z_ColorPalette>().Where(x => !string.IsNullOrEmpty(AssetDatabase.GetAssetPath(x))).ToArray();
availablePalettes_str = availablePalettes.Select(x => x.name).ToArray();
ArrayUtility.Add<string>(ref availablePalettes_str, string.Empty);
ArrayUtility.Add<string>(ref availablePalettes_str, "Add Palette...");
currentPaletteIndex = System.Array.IndexOf(availablePalettes, colorPalette);
}
private void SetColorPalette(z_ColorPalette palette)
{
colorPalette = palette;
RefreshAvailablePalettes();
}
public override void OnBrushSettingsChanged(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushSettingsChanged(target, settings);
RebuildColorTargets(brushColor, settings.strength);
}
private void RebuildColorTargets(Color color, float strength)
{
if( colors_cache == null ||
target_colors == null ||
colors_cache.Length != target_colors.Length)
return;
for(int i = 0; i < colors_cache.Length; i++)
{
target_colors[i] = z_Util.Lerp(colors_cache[i], color, mask, strength);
erase_colors[i] = z_Util.Lerp(colors_cache[i], WHITE, mask, strength);
}
}
// Called when the mouse begins hovering an editable object.
public override void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
base.OnBrushEnter(target, settings);
if(target.graphicsMesh == null)
return;
RebuildCaches(target, settings);
triangleLookup = z_MeshUtility.GetAdjacentTriangles(target.editMesh);
MeshRenderer mr = target.gameObject.GetComponent<MeshRenderer>();
if(mr != null && mr.sharedMaterials != null)
likelySupportsVertexColors = mr.sharedMaterials.Any(x => x.shader != null && z_ShaderUtil.SupportsVertexColors(x.shader));
else
likelySupportsVertexColors = false;
}
private void RebuildCaches(z_EditableObject target, z_BrushSettings settings)
{
z_Mesh m = target.editMesh;
int vertexCount = m.vertexCount;
if(m.colors != null && m.colors.Length == vertexCount)
colors_cache = z_Util.Duplicate(m.colors);
else
colors_cache = z_Util.Fill<Color32>( x => { return Color.white; }, vertexCount);
colors = new Color32[vertexCount];
target_colors = new Color32[vertexCount];
erase_colors = new Color32[vertexCount];
RebuildColorTargets(brushColor, settings.strength);
}
// Called whenever the brush is moved. Note that @target may have a null editableObject.
public override void OnBrushMove(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushMove(target, settings);
if(!z_Util.IsValid(target))
return;
bool shift = Event.current.shift && Event.current.type != EventType.ScrollWheel;
z_Mesh mesh = target.editableObject.editMesh;
int vertexCount = mesh.vertexCount;
float[] weights = target.GetAllWeights();
switch(paintMode)
{
case z_PaintMode.Flood:
for(int i = 0; i < vertexCount; i++)
colors[i] = target_colors[i];
break;
case z_PaintMode.Fill:
System.Array.Copy(colors_cache, colors, vertexCount);
int[] indices = target.editableObject.editMesh.GetTriangles();
int index = 0;
foreach(z_RaycastHit hit in target.raycastHits)
{
if(hit.triangle > -1)
{
index = hit.triangle * 3;
colors[indices[index + 0]] = shift ? WHITE : target_colors[indices[index + 0]];
colors[indices[index + 1]] = shift ? WHITE : target_colors[indices[index + 1]];
colors[indices[index + 2]] = shift ? WHITE : target_colors[indices[index + 2]];
_fillModeEdges[0].x = indices[index+0];
_fillModeEdges[0].y = indices[index+1];
_fillModeEdges[1].x = indices[index+1];
_fillModeEdges[1].y = indices[index+2];
_fillModeEdges[2].x = indices[index+2];
_fillModeEdges[2].y = indices[index+0];
for(int i = 0; i < 3; i++)
{
if(triangleLookup.TryGetValue(_fillModeEdges[i], out _fillModeAdjacentTris))
{
for(int n = 0; n < _fillModeAdjacentTris.Count; n++)
{
index = _fillModeAdjacentTris[n] * 3;
colors[indices[index + 0]] = shift ? WHITE : target_colors[indices[index + 0]];
colors[indices[index + 1]] = shift ? WHITE : target_colors[indices[index + 1]];
colors[indices[index + 2]] = shift ? WHITE : target_colors[indices[index + 2]];
}
}
}
}
}
break;
default:
{
for(int i = 0; i < vertexCount; i++)
{
colors[i] = z_Util.Lerp(colors_cache[i],
shift ? erase_colors[i] : target_colors[i],
mask,
weights[i]);
}
break;
}
}
target.editableObject.editMesh.colors = colors;
target.editableObject.ApplyMeshAttributes(z_MeshChannel.Color);
}
// Called when the mouse exits hovering an editable object.
public override void OnBrushExit(z_EditableObject target)
{
base.OnBrushExit(target);
if(target.editMesh != null)
{
target.editMesh.colors = colors_cache;
target.ApplyMeshAttributes(z_MeshChannel.Color);
}
likelySupportsVertexColors = true;
}
// Called every time the brush should apply itself to a valid target. Default is on mouse move.
public override void OnBrushApply(z_BrushTarget target, z_BrushSettings settings)
{
System.Array.Copy(colors, colors_cache, colors.Length);
target.editableObject.editMesh.colors = colors_cache;
base.OnBrushApply(target, settings);
}
// set mesh colors back to their original state before registering for undo
public override void RegisterUndo(z_BrushTarget brushTarget)
{
brushTarget.editableObject.editMesh.colors = colors_cache;
brushTarget.editableObject.ApplyMeshAttributes(z_MeshChannel.Color);
base.RegisterUndo(brushTarget);
}
public override void DrawGizmos(z_BrushTarget target, z_BrushSettings settings)
{
if(z_Util.IsValid(target) && paintMode == z_PaintMode.Fill)
{
Vector3[] vertices = target.editableObject.editMesh.vertices;
int[] indices = target.editableObject.editMesh.GetTriangles();
z_Handles.PushMatrix();
z_Handles.PushHandleColor();
Handles.matrix = target.transform.localToWorldMatrix;
int index = 0;
foreach(z_RaycastHit hit in target.raycastHits)
{
if(hit.triangle > -1)
{
Handles.color = target_colors[indices[index]];
index = hit.triangle * 3;
Handles.DrawLine(vertices[indices[index+0]] + hit.normal * .1f, vertices[indices[index+1]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+1]] + hit.normal * .1f, vertices[indices[index+2]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+2]] + hit.normal * .1f, vertices[indices[index+0]] + hit.normal * .1f);
_fillModeEdges[0].x = indices[index+0];
_fillModeEdges[0].y = indices[index+1];
_fillModeEdges[1].x = indices[index+1];
_fillModeEdges[1].y = indices[index+2];
_fillModeEdges[2].x = indices[index+2];
_fillModeEdges[2].y = indices[index+0];
for(int i = 0; i < 3; i++)
{
if(triangleLookup.TryGetValue(_fillModeEdges[i], out _fillModeAdjacentTris))
{
for(int n = 0; n < _fillModeAdjacentTris.Count; n++)
{
index = _fillModeAdjacentTris[n] * 3;
Handles.DrawLine(vertices[indices[index+0]] + hit.normal * .1f, vertices[indices[index+1]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+1]] + hit.normal * .1f, vertices[indices[index+2]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+2]] + hit.normal * .1f, vertices[indices[index+0]] + hit.normal * .1f);
}
}
}
}
}
z_Handles.PopHandleColor();
z_Handles.PopMatrix();
}
else
{
base.DrawGizmos(target, settings);
}
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePaint.cs.meta


fileFormatVersion: 2
guid: f425014c97249344099c3f447082d4bc
timeCreated: 1446562266
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

434
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePrefab.cs


using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
namespace Polybrush
{
/**
* Prefab painter brush mode.
*/
public class z_BrushModePrefab : z_BrushMode
{
const string PREFAB_PALETTE_PATH = "Prefab Palettes/Default.asset";
private double lastBrushApplication = 0.0;
private z_LocalPref<bool> hitSurfaceIsParent;
private z_LocalPref<bool> avoidOverlappingGameObjects;
private z_LocalPref<int> previewThumbSize;
// preferences
private bool placeWithPivot = false;
// The current prefab palette
[SerializeField] z_PrefabPalette _prefabPalette = null;
z_PrefabPalette[] availablePalettes = null;
string[] availablePalettes_str = null;
int currentPaletteIndex = -1;
private z_PrefabPalette prefabPalette
{
get
{
if(_prefabPalette == null)
prefabPalette = z_EditorUtility.GetDefaultAsset<z_PrefabPalette>(PREFAB_PALETTE_PATH);
return _prefabPalette;
}
set
{
if(prefabPaletteEditor != null)
GameObject.DestroyImmediate(prefabPaletteEditor);
_prefabPalette = value;
prefabPaletteEditor = (z_PrefabPaletteEditor) Editor.CreateEditor(_prefabPalette);
prefabPaletteEditor.onSelectionChanged = SelectedPrefab;
}
}
// An Editor for the prefabPalette.
z_PrefabPaletteEditor prefabPaletteEditor = null;
// all instances of prefabs in the current palette in this scene.
private List<GameObject> instances = null;
private List<z_PrefabAndSettings> queued = null;
public override string UndoMessage { get { return "Paint Prefabs"; } }
protected override string ModeSettingsHeader { get { return "Placement Settings"; } }
protected override string DocsLink { get { return "http://procore3d.github.io/polybrush/modes/place/"; } }
private GUIStyle paletteStyle;
static GUIContent gc_usePrefabPivot = new GUIContent("Use Pivot", "By default Polybrush will position placed objects entirely on top of the target plane. When 'Use Pivot' is enabled objects will instead be placed by their assigned mesh origin.");
static GUIContent gc_hitSurfaceIsParent = new GUIContent("Hit Surface is Parent", "When enabled any instantiated prefab from this mode will be automatically made a child of the surface it was placed on.");
static GUIContent gc_avoidOverlappingGameObjects = new GUIContent("Avoid Overlap", "If enabled Polybrush will attempt to avoid placing prefabs where they may overlap with another placed GameObject.");
static string FormatInstanceName(GameObject go)
{
return string.Format("{0}(Clone)", go.name);
}
public override void OnEnable()
{
base.OnEnable();
RefreshAvailablePalettes();
if(_prefabPalette == null)
prefabPalette = z_EditorUtility.GetDefaultAsset<z_PrefabPalette>(PREFAB_PALETTE_PATH);
if(prefabPaletteEditor != null)
{
Object.DestroyImmediate(prefabPaletteEditor);
prefabPaletteEditor = null;
}
prefabPaletteEditor = (z_PrefabPaletteEditor) Editor.CreateEditor(_prefabPalette);
// unity won't serialize delegates, so even if prefabPalette isn't null and the editor remains valid
// the delegate could still be null after a script reload.
prefabPaletteEditor.onSelectionChanged = SelectedPrefab;
paletteStyle = new GUIStyle();
paletteStyle.padding = new RectOffset(8, 8, 8, 8);
hitSurfaceIsParent = new z_LocalPref<bool>("prefab_hitSurfaceIsParent", true);
avoidOverlappingGameObjects = new z_LocalPref<bool>("prefab_avoidOverlappingGameObjects");
previewThumbSize = new z_LocalPref<int>("prefab_previewThumbSize", 64);
}
public override void OnDisable()
{
base.OnDisable();
if(prefabPaletteEditor != null)
{
GameObject.DestroyImmediate(prefabPaletteEditor);
prefabPaletteEditor = null;
}
}
// Inspector GUI shown in the Editor window. Base class shows z_BrushSettings by default
public override void DrawGUI(z_BrushSettings brushSettings)
{
base.DrawGUI(brushSettings);
placeWithPivot = z_GUILayout.Toggle(gc_usePrefabPivot, placeWithPivot);
z_GlobalSettingsEditor.lockBrushToFirst = z_GUILayout.Toggle(z_GlobalSettingsEditor.gc_lockBrushToFirst, z_GlobalSettingsEditor.lockBrushToFirst);
hitSurfaceIsParent.prefValue = z_GUILayout.Toggle(gc_hitSurfaceIsParent, hitSurfaceIsParent);
avoidOverlappingGameObjects.prefValue = z_GUILayout.Toggle(gc_avoidOverlappingGameObjects, avoidOverlappingGameObjects);
GUILayout.Space(4);
if(prefabPalette == null)
RefreshAvailablePalettes();
EditorGUI.BeginChangeCheck();
currentPaletteIndex = EditorGUILayout.Popup(currentPaletteIndex, availablePalettes_str, "popup");
if(EditorGUI.EndChangeCheck())
{
if(currentPaletteIndex >= availablePalettes.Length)
SetPrefabPalette( z_PrefabPaletteEditor.AddNew() );
else
SetPrefabPalette(availablePalettes[currentPaletteIndex]);
}
GUILayout.Space(4);
GUILayout.BeginHorizontal();
GUILayout.Label("Prefabs");
previewThumbSize.prefValue = (int) GUILayout.HorizontalSlider((float)previewThumbSize, 16f, 128f);
GUILayout.EndHorizontal();
GUILayout.BeginVertical( paletteStyle );
if(prefabPaletteEditor != null)
prefabPaletteEditor.OnInspectorGUI_Internal(previewThumbSize);
GUILayout.EndVertical();
}
private void SetPrefabPalette(z_PrefabPalette palette)
{
prefabPalette = palette;
RefreshAvailablePalettes();
}
private void RefreshAvailablePalettes()
{
availablePalettes = Resources.FindObjectsOfTypeAll<z_PrefabPalette>().Where(x => !string.IsNullOrEmpty(AssetDatabase.GetAssetPath(x))).ToArray();
availablePalettes_str = availablePalettes.Select(x => x.name).ToArray();
ArrayUtility.Add<string>(ref availablePalettes_str, string.Empty);
ArrayUtility.Add<string>(ref availablePalettes_str, "Add Palette...");
currentPaletteIndex = System.Array.IndexOf(availablePalettes, _prefabPalette);
}
private void SelectedPrefab(IEnumerable<int> selected)
{
if(selected == null)
queued = null;
else
queued = prefabPalette.prefabs.Where( (x, i) => { return selected.Contains(i); } ).ToList();
}
public override void OnBrushSettingsChanged(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushSettingsChanged(target, settings);
}
// Called when the mouse begins hovering an editable object.
public override void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
base.OnBrushEnter(target, settings);
}
// Called whenever the brush is moved. Note that @target may have a null editableObject.
public override void OnBrushMove(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushMove(target, settings);
}
// Called when the mouse exits hovering an editable object.
public override void OnBrushExit(z_EditableObject target)
{
base.OnBrushExit(target);
}
public override void OnBrushBeginApply(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushBeginApply(target, settings);
instances = z_SceneUtility.FindInstancesInScene(prefabPalette.prefabs.Select(x => x.gameObject), FormatInstanceName).ToList();
}
// Called every time the brush should apply itself to a valid target. Default is on mouse move.
public override void OnBrushApply(z_BrushTarget target, z_BrushSettings settings)
{
bool shift = Event.current.shift && Event.current.type != EventType.ScrollWheel;
if( (EditorApplication.timeSinceStartup - lastBrushApplication) > Mathf.Max(.06f, (1f - settings.strength)) )
{
lastBrushApplication = EditorApplication.timeSinceStartup;
if(shift)
{
foreach(z_RaycastHit hit in target.raycastHits)
RemoveGameObjects(hit, target, settings);
}
else
{
foreach(z_RaycastHit hit in target.raycastHits)
PlaceGameObject(hit, GetPrefab().gameObject, target, settings);
}
}
}
// Handle Undo locally since it doesn't follow the same pattern as mesh modifications.
public override void RegisterUndo(z_BrushTarget brushTarget) {}
private void PlaceGameObject(z_RaycastHit hit, GameObject prefab, z_BrushTarget target, z_BrushSettings settings)
{
if(prefab == null)
return;
Ray ray = RandomRay(hit.position, hit.normal, settings.radius, settings.falloff, settings.falloffCurve);
z_RaycastHit rand_hit;
Vector3[] vertices = target.editableObject.editMesh.vertices;
int[] triangles = target.editableObject.editMesh.GetTriangles();
if( z_SceneUtility.MeshRaycast(ray, vertices, triangles, out rand_hit) )
{
float pivotOffset = placeWithPivot ? 0f : GetPivotOffset(prefab);
Quaternion rotation = Quaternion.FromToRotation(Vector3.up, target.transform.TransformDirection(rand_hit.normal));
Quaternion random = Quaternion.AngleAxis(Random.Range(0f, 360f), Vector3.up);
GameObject inst = PrefabUtility.ConnectGameObjectToPrefab(Instantiate(prefab), prefab);
inst.transform.localPosition = target.transform.TransformPoint(rand_hit.position);
inst.transform.localRotation = rotation * random;
inst.name = FormatInstanceName(prefab);
inst.transform.position = inst.transform.position + inst.transform.up * pivotOffset;
if( avoidOverlappingGameObjects && TestIntersection(inst) )
{
Object.DestroyImmediate(inst);
return;
}
if( hitSurfaceIsParent )
inst.transform.SetParent(target.transform);
PrefabUtility.RecordPrefabInstancePropertyModifications(inst);
instances.Add(inst);
Undo.RegisterCreatedObjectUndo(inst, UndoMessage);
}
}
private void RemoveGameObjects(z_RaycastHit hit, z_BrushTarget target, z_BrushSettings settings)
{
Vector3 worldHitPosition = target.editableObject.transform.TransformPoint(hit.position);
int count = instances.Count;
for(int i = 0; i < count; i++)
{
if( instances[i] != null && Vector3.Distance(worldHitPosition, instances[i].transform.position) < settings.radius )
{
GameObject go = instances[i];
instances.RemoveAt(i);
count--;
Undo.DestroyObjectImmediate(go);
}
}
}
private Ray RandomRay(Vector3 position, Vector3 normal, float radius, float falloff, AnimationCurve curve)
{
Vector3 a = Vector3.zero;
Quaternion rotation = Quaternion.LookRotation(normal, Vector3.up);
a.x = Mathf.Cos(Random.Range(0f, 360f));
a.y = Mathf.Sin(Random.Range(0f, 360f));
float r = Mathf.Sqrt(Random.Range(0f, 1f));
while(true)
{
// this isn't great
if(r < falloff || Random.Range(0f, 1f) > Mathf.Clamp(curve.Evaluate( 1f - ((r - falloff) / (1f - falloff))), 0f, 1f))
{
a = position + (rotation * (a.normalized * r * radius));
return new Ray(a + normal * 10f, -normal);
}
else
{
r = Mathf.Sqrt(Random.Range(0f, 1f));
}
}
}
private z_PrefabAndSettings GetPrefab()
{
List<z_PrefabAndSettings> pool = queued != null && queued.Count > 0 ? queued : prefabPalette.prefabs;
int count = pool == null ? 0 : pool.Count;
return count > 0 ? pool[(int) Random.Range(0, count)] : null;
}
private float GetPivotOffset(GameObject go)
{
MeshFilter mf = go.GetComponent<MeshFilter>();
// probuilder meshes that are prefabs might not have a mesh
// associated with them, so make sure they do before querying
// for bounds
object pb = go.GetComponent("pb_Object");
if(pb != null)
z_ReflectionUtil.Invoke(pb, "Awake");
if(mf == null || mf.sharedMesh == null)
return 0f;
Bounds bounds = mf.sharedMesh.bounds;
return (-bounds.center.y + bounds.extents.y) * go.transform.localScale.y;
}
private struct SphereBounds
{
public Vector3 position;
public float radius;
public SphereBounds(Vector3 p, float r)
{
position = p;
radius = r;
}
public bool Intersects(SphereBounds other)
{
return Vector3.Distance(position, other.position) < (radius + other.radius);
}
}
private static bool GetSphereBounds(GameObject go, out SphereBounds bounds)
{
bounds = new SphereBounds();
if(go == null)
return false;
Mesh mesh = null;
MeshFilter mf = go.GetComponentInChildren<MeshFilter>();
if(mf != null && mf.sharedMesh != null)
{
mesh = mf.sharedMesh;
}
else
{
SkinnedMeshRenderer smr = go.GetComponentInChildren<SkinnedMeshRenderer>();
if(smr != null && smr.sharedMesh != null)
mesh = smr.sharedMesh;
}
if(mesh != null)
{
Bounds meshBounds = mf.sharedMesh.bounds;
bounds.position = mf.transform.TransformPoint(meshBounds.center - (Vector3.up * meshBounds.extents.y));
bounds.radius = Mathf.Max(meshBounds.extents.x, meshBounds.extents.z);
return true;
}
return false;
}
/**
* Tests if go intersects with any painted objects.
*/
private bool TestIntersection(GameObject go)
{
SphereBounds bounds, it_bounds;
if(!GetSphereBounds(go, out bounds))
return false;
int c = instances == null ? 0 : instances.Count;
for(int i = 0; i < c; i++)
{
if(GetSphereBounds(instances[i], out it_bounds) && bounds.Intersects(it_bounds))
return true;
}
return false;
}
public override void DrawGizmos(z_BrushTarget target, z_BrushSettings settings)
{
base.DrawGizmos(target, settings);
// SphereBounds bounds;
// foreach(GameObject go in instances)
// {
// if(!GetSphereBounds(go, out bounds))
// continue;
// Handles.CircleCap(-1, bounds.position, Quaternion.Euler(Vector3.up * 90f), bounds.radius);
// Handles.CircleCap(-1, bounds.position, Quaternion.Euler(Vector3.right * 90f), bounds.radius);
// Handles.CircleCap(-1, bounds.position, Quaternion.Euler(Vector3.forward * 90f), bounds.radius);
// }
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModePrefab.cs.meta


fileFormatVersion: 2
guid: 7afd235f90a2cb943996cef04118c5fa
timeCreated: 1447866851
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

123
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeRaiseLower.cs


using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
namespace Polybrush
{
/**
* Brush mode for moving vertices in a direction.
*/
public class z_BrushModeRaiseLower : z_BrushModeSculpt
{
protected override string brushDirectionPref { get{ return z_Pref.raiseLowerDirection; } }
protected override string brushNormalIsStickyPref { get{ return "pushpull_brush_sticky"; } }
protected override string ignoreNonManifoldIndicesPref { get { return "pushpull_ignoreNonManifoldIndices"; } }
Vector3[] vertices = null;
Dictionary<int, Vector3> normalLookup = null;
List<List<int>> commonVertices = null;
int commonVertexCount;
[SerializeField] float brushStrength = 1f;
public override string UndoMessage { get { return "Push / Pull Vertices"; } }
protected override string DocsLink { get { return "http://procore3d.github.io/polybrush/modes/sculpt/"; } }
protected override string ModeSettingsHeader { get { return "Push / Pull Settings"; } }
private GUIContent gc_BrushEffect = new GUIContent("Brush Effect", "Defines the baseline distance that vertices will be moved when a brush is applied at full strength.");
public override void OnEnable()
{
base.OnEnable();
brushStrength = z_Pref.GetFloat(z_Pref.pushPullEffect);
}
public override void DrawGUI(z_BrushSettings settings)
{
base.DrawGUI(settings);
EditorGUI.BeginChangeCheck();
brushStrength = z_GUILayout.FloatField(gc_BrushEffect, brushStrength);
if(EditorGUI.EndChangeCheck())
z_Pref.SetFloat(z_Pref.pushPullEffect, brushStrength);
}
public override void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
base.OnBrushEnter(target, settings);
vertices = target.editMesh.vertices;
normalLookup = z_MeshUtility.GetSmoothNormalLookup(target.editMesh);
commonVertices = z_MeshUtility.GetCommonVertices(target.editMesh);
commonVertexCount = commonVertices.Count;
}
public override void OnBrushApply(z_BrushTarget target, z_BrushSettings settings)
{
int rayCount = target.raycastHits.Count;
if(rayCount < 1)
return;
Vector3 n = direction.ToVector3();
float scale = 1f / ( Vector3.Scale(target.transform.lossyScale, n).magnitude );
float sign = Event.current.control ? -1f : 1f;
float maxMoveDistance = settings.strength * STRENGTH_MODIFIER * sign * brushStrength;
int vertexCount = target.editableObject.vertexCount;
z_Mesh mesh = target.editableObject.editMesh;
for(int ri = 0; ri < rayCount; ri++)
{
z_RaycastHit hit = target.raycastHits[ri];
if(hit.weights == null || hit.weights.Length < vertexCount)
continue;
if( direction == z_Direction.BrushNormal )
{
if(brushNormalIsSticky)
n = brushNormalOnBeginApply[ri];
else
n = target.raycastHits[ri].normal;
scale = 1f / ( Vector3.Scale(target.transform.lossyScale, n).magnitude );
}
for(int i = 0; i < commonVertexCount; i++)
{
int index = commonVertices[i][0];
if(hit.weights[index] < .0001f || (ignoreNonManifoldIndices && nonManifoldIndices.Contains(index)))
continue;
if(direction == z_Direction.VertexNormal)
{
n = normalLookup[index];
scale = 1f / ( Vector3.Scale(target.transform.lossyScale, n).magnitude );
}
Vector3 pos = vertices[index] + n * (hit.weights[index] * maxMoveDistance * scale);
List<int> indices = commonVertices[i];
for(int it = 0; it < indices.Count; it++)
vertices[indices[it]] = pos;
}
}
mesh.vertices = vertices;
// different than setting weights on temp component,
// which is what z_BrushModeMesh.OnBrushApply does.
if(tempComponent != null)
tempComponent.OnVerticesMoved(mesh);
base.OnBrushApply(target, settings);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeRaiseLower.cs.meta


fileFormatVersion: 2
guid: 17e06d3605d82ad408e50c561837d9f4
timeCreated: 1446217542
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

129
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSculpt.cs


using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
namespace Polybrush
{
/**
* Base class for brush modes that move vertices around. Implements an overlay preview.
*/
public abstract class z_BrushModeSculpt : z_BrushModeMesh
{
// Modifier to apply on top of strength. Translates to brush applications per second roughly.
public const float STRENGTH_MODIFIER = .01f;
// Allow child classes to store independent preference values.
protected virtual string brushDirectionPref { get { return z_Pref.sculptDirection; } }
// Allow child classes to store independent preference values.
protected virtual string brushNormalIsStickyPref { get { return z_Pref.brushNormalIsSticky; } }
// Allow child classes to store independent preference values.
protected virtual string ignoreNonManifoldIndicesPref { get { return "ignoreNonManifoldIndices"; } }
public Color[] gradient = new Color[3]
{
Color.green,
Color.yellow,
Color.black
};
// What direction to push vertices in.
public z_Direction direction = z_Direction.Up;
protected List<Vector3> brushNormalOnBeginApply = new List<Vector3>();
protected Vector3[] cached_normals;
public GUIContent gc_direction = new GUIContent("Direction", "How vertices are moved when the brush is applied. You can explicitly set an axis, or use the vertex normal.");
public GUIContent gc_ignoreOpenEdges = new GUIContent("Ignore Open Edges", "When on, edges that are not connected on both sides will be ignored by brush strokes.");
protected bool brushNormalIsSticky = false;
private GUIContent gc_brushNormalIsSticky = new GUIContent("Brush Normal is Sticky", "If enabled, vertices will be moved only on the direction of the brush normal at the time of first application.");
public override string UndoMessage { get { return "Sculpt Vertices"; } }
protected override string ModeSettingsHeader { get { return "Sculpt Settings"; } }
// If true vertices on the edge of a mesh will not be affected by brush strokes. It is up to inheriting
// classes to implement this preference (use `nonManifoldIndices` HashSet to check if a vertex index is
// non-manifold).
protected bool ignoreNonManifoldIndices = true;
protected HashSet<int> nonManifoldIndices = null;
public override void OnEnable()
{
base.OnEnable();
brushNormalIsSticky = z_Pref.GetBool( brushNormalIsStickyPref );
ignoreNonManifoldIndices = z_Pref.GetBool( ignoreNonManifoldIndicesPref );
direction = (z_Direction) z_Pref.GetInt( brushDirectionPref );
}
public override void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
base.OnBrushEnter(target, settings);
nonManifoldIndices = z_MeshUtility.GetNonManifoldIndices(target.editMesh);
}
public override void DrawGUI(z_BrushSettings settings)
{
base.DrawGUI(settings);
EditorGUI.BeginChangeCheck();
ignoreNonManifoldIndices = z_GUILayout.Toggle(gc_ignoreOpenEdges, ignoreNonManifoldIndices);
if(EditorGUI.EndChangeCheck())
z_Pref.SetBool(ignoreNonManifoldIndicesPref, ignoreNonManifoldIndices);
if(direction == z_Direction.BrushNormal)
{
EditorGUI.BeginChangeCheck();
brushNormalIsSticky = z_GUILayout.Toggle(gc_brushNormalIsSticky, brushNormalIsSticky);
if(EditorGUI.EndChangeCheck())
z_Pref.SetBool(brushNormalIsStickyPref, brushNormalIsSticky);
}
EditorGUI.BeginChangeCheck();
direction = (z_Direction) z_GUILayout.EnumPopup(gc_direction, direction);
if(EditorGUI.EndChangeCheck())
z_Pref.SetInt(brushDirectionPref, (int) direction);
}
protected void CacheBrushNormals(z_BrushTarget target)
{
brushNormalOnBeginApply.Clear();
for(int i = 0; i < target.raycastHits.Count; i++)
brushNormalOnBeginApply.Add(target.raycastHits[i].normal);
z_Mesh mesh = target.editableObject.editMesh;
cached_normals = new Vector3[mesh.vertexCount];
if(mesh.normals != null && mesh.normals.Length == mesh.vertexCount)
System.Array.Copy(mesh.normals, 0, cached_normals, 0, mesh.vertexCount);
}
public override void OnBrushBeginApply(z_BrushTarget target, z_BrushSettings settings)
{
CacheBrushNormals(target);
base.OnBrushBeginApply(target, settings);
}
protected override void CreateTempComponent(z_EditableObject target, z_BrushSettings settings)
{
z_OverlayRenderer ren = target.gameObject.AddComponent<z_OverlayRenderer>();
ren.SetMesh(target.editMesh);
ren.fullColor = z_Pref.GetColor(z_Pref.brushColor);
ren.gradient = z_Pref.GetGradient(z_Pref.brushGradient);
tempComponent = ren;
}
protected override void UpdateTempComponent(z_BrushTarget target, z_BrushSettings settings)
{
if(tempComponent != null)
((z_OverlayRenderer)tempComponent).SetWeights(target.GetAllWeights(), settings.strength);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSculpt.cs.meta


fileFormatVersion: 2
guid: 23c0c596c336a404983b526a10ecf007
timeCreated: 1445434544
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

115
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSmooth.cs


using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
namespace Polybrush
{
/**
* Brush mode for moving vertices in a direction.
*/
public class z_BrushModeSmooth : z_BrushModeSculpt
{
const float SMOOTH_STRENGTH_MODIFIER = .1f;
protected override string brushDirectionPref { get { return z_Pref.smoothDirection; } }
protected override string brushNormalIsStickyPref { get { return "smooth_brush_sticky"; } }
protected override string ignoreNonManifoldIndicesPref { get { return "smooth_ignoreNonManifoldIndices"; } }
Vector3[] vertices = null;
Dictionary<int, List<int>> neighborLookup = new Dictionary<int, List<int>>();
List<List<int>> commonVertices = null;
int commonVertexCount;
public override string UndoMessage { get { return "Smooth Vertices"; } }
protected override string ModeSettingsHeader { get { return "Smooth Settings"; } }
protected override string DocsLink { get { return "http://procore3d.github.io/polybrush/modes/smooth/"; } }
public override void OnEnable()
{
base.OnEnable();
}
public override void DrawGUI(z_BrushSettings settings)
{
base.DrawGUI(settings);
}
public override void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
base.OnBrushEnter(target, settings);
vertices = target.editMesh.vertices;
neighborLookup = z_MeshUtility.GetAdjacentVertices(target.editMesh);
commonVertices = z_MeshUtility.GetCommonVertices(target.editMesh);
commonVertexCount = commonVertices.Count;
}
public override void OnBrushApply(z_BrushTarget target, z_BrushSettings settings)
{
int rayCount = target.raycastHits.Count;
Vector3[] normals = (direction == z_Direction.BrushNormal) ? target.editableObject.editMesh.normals : null;
Vector3 v, t, avg, dirVec = direction.ToVector3();
Plane plane = new Plane(Vector3.up, Vector3.zero);
z_Mesh mesh = target.editableObject.editMesh;
int vertexCount = mesh.vertexCount;
// don't use target.GetAllWeights because brush normal needs
// to know which ray to use for normal
for(int ri = 0; ri < rayCount; ri++)
{
z_RaycastHit hit = target.raycastHits[ri];
if(hit.weights == null || hit.weights.Length < vertexCount)
continue;
for(int i = 0; i < commonVertexCount; i++)
{
int index = commonVertices[i][0];
if(hit.weights[index] < .0001f || (ignoreNonManifoldIndices && nonManifoldIndices.Contains(index)))
continue;
v = vertices[index];
if(direction == z_Direction.VertexNormal)
{
avg = z_Math.Average(vertices, neighborLookup[index]);
}
else
{
avg = z_Math.WeightedAverage(vertices, neighborLookup[index], hit.weights);
if(direction == z_Direction.BrushNormal)
{
if(brushNormalIsSticky)
dirVec = brushNormalOnBeginApply[ri];
else
dirVec = z_Math.WeightedAverage(normals, neighborLookup[index], hit.weights).normalized;
}
plane.SetNormalAndPosition(dirVec, avg);
avg = v - dirVec * plane.GetDistanceToPoint(v);
}
t = Vector3.Lerp(v, avg, hit.weights[index]);
List<int> indices = commonVertices[i];
Vector3 pos = v + (t-v) * settings.strength * SMOOTH_STRENGTH_MODIFIER;
for(int n = 0; n < indices.Count; n++)
vertices[indices[n]] = pos;
}
}
mesh.vertices = vertices;
if(tempComponent != null)
tempComponent.OnVerticesMoved(mesh);
base.OnBrushApply(target, settings);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeSmooth.cs.meta


fileFormatVersion: 2
guid: 5d099a4e89428b34cb4b63a7c45d01b9
timeCreated: 1446041888
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

422
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeTexture.cs


// #define POLYBRUSH_DEBUG
using UnityEngine;
using UnityEditor;
using System.Collections;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
namespace Polybrush
{
/**
* Vertex texture painter brush mode.
* Similar to z_BrushModePaint, except it packs blend information into both the color32 and UV3/4 channels.
*/
public class z_BrushModeTexture : z_BrushModeMesh
{
// how many applications it should take to reach the full strength
const float STRENGTH_MODIFIER = 1f/8f;
z_PaintMode paintMode = z_PaintMode.Brush;
bool likelySupportsTextureBlending = true;
[System.NonSerialized]
z_SplatSet splat_cache = null,
splat_target = null,
splat_erase = null,
splat_current = null;
[System.NonSerialized] z_SplatWeight brushColor = null;
[System.NonSerialized] z_SplatWeight minWeights = null;
[SerializeField] int selectedAttributeIndex = -1;
private z_AttributeLayoutContainer meshAttributesContainer = null;
private z_AttributeLayout[] meshAttributes
{
get
{
return meshAttributesContainer != null ? meshAttributesContainer.attributes : null;
}
}
// temp vars
private z_Edge[] _fillModeEdges = new z_Edge[3];
private List<int> _fillModeAdjacentTris = null;
[SerializeField] int vertexCount = 0;
Dictionary<z_Edge, List<int>> triangleLookup = null;
public GUIContent[] modeIcons = new GUIContent[]
{
new GUIContent("Brush", "Brush" ),
new GUIContent("Fill", "Fill" ),
new GUIContent("Flood", "Flood" )
};
// The message that will accompany Undo commands for this brush. Undo/Redo is handled by z_Editor.
public override string UndoMessage { get { return "Paint Brush"; } }
protected override string ModeSettingsHeader { get { return "Texture Paint Settings"; } }
protected override string DocsLink { get { return "http://procore3d.github.io/polybrush/modes/texture/"; } }
public override void OnEnable()
{
base.OnEnable();
//modeIcons[0].image = z_IconUtility.GetIcon("Icon/Brush");
//modeIcons[1].image = z_IconUtility.GetIcon("Icon/Roller");
//modeIcons[2].image = z_IconUtility.GetIcon("Icon/Flood");
likelySupportsTextureBlending = false;
meshAttributesContainer = null;
brushColor = null;
foreach(GameObject go in Selection.gameObjects)
{
likelySupportsTextureBlending = CheckForTextureBlendSupport(go);
if(likelySupportsTextureBlending)
break;
}
}
// Inspector GUI shown in the Editor window. Base class shows z_BrushSettings by default
public override void DrawGUI(z_BrushSettings brushSettings)
{
base.DrawGUI(brushSettings);
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
paintMode = (z_PaintMode) GUILayout.Toolbar( (int) paintMode, modeIcons, "Command", GUILayout.Width(120));
GUILayout.FlexibleSpace();
GUILayout.EndHorizontal();
GUILayout.Space(4);
if(!likelySupportsTextureBlending)
{
EditorGUILayout.HelpBox("It doesn't look like any of the materials on this object support texture blending!\n\nSee the readme for information on creating custom texture blend shaders.", MessageType.Warning);
}
if(meshAttributes != null)
{
int prevSelectedAttributeIndex = selectedAttributeIndex;
selectedAttributeIndex = z_SplatWeightEditor.OnInspectorGUI(selectedAttributeIndex, ref brushColor, meshAttributes);
if(prevSelectedAttributeIndex != selectedAttributeIndex)
SetBrushColorWithAttributeIndex(selectedAttributeIndex);
#if POLYBRUSH_DEBUG
GUILayout.BeginHorizontal();
GUILayout.FlexibleSpace();
if(GUILayout.Button("MetaData", EditorStyles.miniButton))
{
Debug.Log(meshAttributes.ToString("\n"));
string str = z_EditorUtility.FindPolybrushMetaDataForShader(meshAttributesContainer.shader);
if(!string.IsNullOrEmpty(str))
{
TextAsset asset = AssetDatabase.LoadAssetAtPath<TextAsset>(str);
if(asset != null)
EditorGUIUtility.PingObject(asset);
else
Debug.LogWarning("No MetaData found for Shader \"" + meshAttributesContainer.shader.name + "\"");
}
else
{
Debug.LogWarning("No MetaData found for Shader \"" + meshAttributesContainer.shader.name + "\"");
}
}
GUILayout.EndHorizontal();
GUILayout.Space(4);
if(GUILayout.Button("rebuild targets"))
RebuildColorTargets(brushColor, brushSettings.strength);
GUILayout.Label(brushColor != null ? brushColor.ToString() : "brush color: null\n");
#endif
}
}
public override void OnBrushSettingsChanged(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushSettingsChanged(target, settings);
RebuildColorTargets(brushColor, settings.strength);
}
/**
* Test a gameObject and it's mesh renderers for compatible shaders, and if one is found
* load it's attribute data into meshAttributes.
*/
private bool CheckForTextureBlendSupport(GameObject go)
{
z_AttributeLayoutContainer detectedMeshAttributes;
foreach(Material mat in z_Util.GetMaterials(go))
{
if(z_ShaderUtil.GetMeshAttributes(mat, out detectedMeshAttributes))
{
meshAttributesContainer = detectedMeshAttributes;
return true;
}
}
return false;
}
private void SetBrushColorWithAttributeIndex(int index)
{
if( brushColor == null ||
meshAttributes == null ||
index < 0 ||
index >= meshAttributes.Length)
return;
selectedAttributeIndex = index;
if(meshAttributes[index].mask > -1)
{
for(int i = 0; i < meshAttributes.Length; i++)
{
if(meshAttributes[i].mask == meshAttributes[index].mask)
brushColor.SetAttributeValue(meshAttributes[i], meshAttributes[i].min);
}
}
brushColor.SetAttributeValue(meshAttributes[index], meshAttributes[index].max);
}
private void RebuildColorTargets(z_SplatWeight blend, float strength)
{
if(blend == null || splat_cache == null || splat_target == null)
return;
minWeights = splat_target.GetMinWeights();
splat_target.LerpWeights(splat_cache, blend, strength);
splat_erase.LerpWeights(splat_cache, minWeights, strength);
}
private void RebuildCaches(z_Mesh m, float strength)
{
vertexCount = m.vertexCount;
triangleLookup = z_MeshUtility.GetAdjacentTriangles(m);
if(meshAttributes == null)
{
// clear caches
splat_cache = null;
splat_current = null;
splat_target = null;
splat_erase = null;
return;
}
splat_cache = new z_SplatSet(m, meshAttributes);
splat_current = new z_SplatSet(splat_cache);
splat_target = new z_SplatSet(vertexCount, meshAttributes);
splat_erase = new z_SplatSet(vertexCount, meshAttributes);
}
// Called when the mouse begins hovering an editable object.
public override void OnBrushEnter(z_EditableObject target, z_BrushSettings settings)
{
base.OnBrushEnter(target, settings);
if(target.editMesh == null)
return;
likelySupportsTextureBlending = CheckForTextureBlendSupport(target.gameObject);
if(likelySupportsTextureBlending && (brushColor == null || !brushColor.MatchesAttributes(meshAttributes)))
{
brushColor = new z_SplatWeight( z_SplatWeight.GetChannelMap(meshAttributes) );
SetBrushColorWithAttributeIndex( z_Math.Clamp(selectedAttributeIndex, 0, meshAttributes.Length - 1) );
}
RebuildCaches(target.editMesh, settings.strength);
RebuildColorTargets(brushColor, settings.strength);
}
// Called whenever the brush is moved. Note that @target may have a null editableObject.
public override void OnBrushMove(z_BrushTarget target, z_BrushSettings settings)
{
base.OnBrushMove(target, settings);
if(!z_Util.IsValid(target) || !likelySupportsTextureBlending)
return;
bool shift = Event.current.shift;
float[] weights;
if(paintMode == z_PaintMode.Brush)
{
weights = target.GetAllWeights();
}
else if(paintMode == z_PaintMode.Flood)
{
weights = new float[vertexCount];
for(int i = 0; i < vertexCount; i++)
weights[i] = 1f;
}
else
{
weights = new float[vertexCount];
int[] indices = target.editableObject.editMesh.GetTriangles();
int index = 0;
float weightTarget = shift ? 0f : 1f;
foreach(z_RaycastHit hit in target.raycastHits)
{
if(hit.triangle > -1)
{
index = hit.triangle * 3;
_fillModeEdges[0].x = indices[index+0];
_fillModeEdges[0].y = indices[index+1];
_fillModeEdges[1].x = indices[index+1];
_fillModeEdges[1].y = indices[index+2];
_fillModeEdges[2].x = indices[index+2];
_fillModeEdges[2].y = indices[index+0];
for(int i = 0; i < 3; i++)
{
if(triangleLookup.TryGetValue(_fillModeEdges[i], out _fillModeAdjacentTris))
{
for(int n = 0; n < _fillModeAdjacentTris.Count; n++)
{
index = _fillModeAdjacentTris[n] * 3;
weights[indices[index ]] = weightTarget;
weights[indices[index+1]] = weightTarget;
weights[indices[index+2]] = weightTarget;
}
}
}
}
}
}
if(selectedAttributeIndex < 0 || selectedAttributeIndex >= meshAttributes.Length)
SetBrushColorWithAttributeIndex(0);
int mask = meshAttributes[selectedAttributeIndex].mask;
splat_current.LerpWeights(splat_cache, shift ? splat_erase : splat_target, mask, weights);
splat_current.Apply(target.editableObject.editMesh);
target.editableObject.ApplyMeshAttributes();
}
// Called when the mouse exits hovering an editable object.
public override void OnBrushExit(z_EditableObject target)
{
base.OnBrushExit(target);
if(splat_cache != null)
{
splat_cache.Apply(target.editMesh);
target.ApplyMeshAttributes();
target.graphicsMesh.UploadMeshData(false);
}
likelySupportsTextureBlending = true;
}
// Called every time the brush should apply itself to a valid target. Default is on mouse move.
public override void OnBrushApply(z_BrushTarget target, z_BrushSettings settings)
{
if(!likelySupportsTextureBlending)
return;
splat_current.CopyTo(splat_cache);
splat_cache.Apply(target.editableObject.editMesh);
base.OnBrushApply(target, settings);
}
// set mesh splat_current back to their original state before registering for undo
public override void RegisterUndo(z_BrushTarget brushTarget)
{
if(splat_cache != null)
{
splat_cache.Apply(brushTarget.editableObject.editMesh);
brushTarget.editableObject.ApplyMeshAttributes();
}
base.RegisterUndo(brushTarget);
}
public override void DrawGizmos(z_BrushTarget target, z_BrushSettings settings)
{
z_Mesh mesh = target.editableObject.editMesh;
if(z_Util.IsValid(target) && paintMode == z_PaintMode.Fill)
{
Vector3[] vertices = mesh.vertices;
int[] indices = mesh.GetTriangles();
z_Handles.PushMatrix();
z_Handles.PushHandleColor();
Handles.matrix = target.transform.localToWorldMatrix;
int index = 0;
foreach(z_RaycastHit hit in target.raycastHits)
{
if(hit.triangle > -1)
{
Handles.color = Color.green;
index = hit.triangle * 3;
Handles.DrawLine(vertices[indices[index+0]] + hit.normal * .1f, vertices[indices[index+1]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+1]] + hit.normal * .1f, vertices[indices[index+2]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+2]] + hit.normal * .1f, vertices[indices[index+0]] + hit.normal * .1f);
_fillModeEdges[0].x = indices[index+0];
_fillModeEdges[0].y = indices[index+1];
_fillModeEdges[1].x = indices[index+1];
_fillModeEdges[1].y = indices[index+2];
_fillModeEdges[2].x = indices[index+2];
_fillModeEdges[2].y = indices[index+0];
for(int i = 0; i < 3; i++)
{
if(triangleLookup.TryGetValue(_fillModeEdges[i], out _fillModeAdjacentTris))
{
for(int n = 0; n < _fillModeAdjacentTris.Count; n++)
{
index = _fillModeAdjacentTris[n] * 3;
Handles.DrawLine(vertices[indices[index+0]] + hit.normal * .1f, vertices[indices[index+1]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+1]] + hit.normal * .1f, vertices[indices[index+2]] + hit.normal * .1f);
Handles.DrawLine(vertices[indices[index+2]] + hit.normal * .1f, vertices[indices[index+0]] + hit.normal * .1f);
}
}
}
}
}
z_Handles.PopHandleColor();
z_Handles.PopMatrix();
}
else
{
base.DrawGizmos(target, settings);
}
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Brush Modes/z_BrushModeTexture.cs.meta


fileFormatVersion: 2
guid: 58e885a4808b3ed4b884ae57bc1a2d26
timeCreated: 1450794133
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

9
Assets/ProCore/Polybrush/Code/Editor/Classes.meta


fileFormatVersion: 2
guid: 84c813a34d1fec9479a07683c4c91902
folderAsset: yes
timeCreated: 1445006243
licenseType: Store
DefaultImporter:
userData:
assetBundleName:
assetBundleVariant:

134
Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushSettings.cs


using UnityEngine;
namespace Polybrush
{
/**
* Collection of settings for a sculpting brush.
*/
[CreateAssetMenuAttribute(menuName = "Polybrush/Brush Settings Preset", fileName = "Brush Settings", order = 800)]
[System.Serializable]
public class z_BrushSettings : ScriptableObject, z_IHasDefault
{
public float brushRadiusMin = 0.001f;
public float brushRadiusMax = 10f;
/// The total affected radius of this brush.
[SerializeField] private float _radius = 1f;
/// At what point the strength of the brush begins to taper off.
[SerializeField] float _falloff = .5f;
/// How may times per-second a mouse click will apply a brush stroke.
[SerializeField] float _strength = 10f;
[SerializeField] AnimationCurve _curve = new AnimationCurve(
new Keyframe(0f, 1f),
new Keyframe(1f, 0f, -3f, -3f)
);
public AnimationCurve falloffCurve
{
get
{
return _curve;
}
set
{
_curve = allowNonNormalizedFalloff ? value : z_Util.ClampAnimationKeys(value, 0f, 1f, 1f, 0f);
}
}
/// If true, the falloff curve won't be clamped to keyframes at 0,0 and 1,1.
public bool allowNonNormalizedFalloff = false;
/// The total affected radius of this brush.
public float radius
{
get
{
return _radius;
}
set
{
_radius = Mathf.Clamp(value, brushRadiusMin, brushRadiusMax);
}
}
/// At what point the strength of the brush begins to taper off.
/// 0 means the strength tapers from the center of the brush to the edge.
/// 1 means the strength is 100% all the way through the brush.
/// .5 means the strength is 100% through 1/2 the radius then tapers to the edge.
public float falloff
{
get
{
return _falloff;
}
set
{
_falloff = Mathf.Clamp(value, 0f, 1f);
}
}
public float strength
{
get
{
return _strength;
}
set
{
_strength = Mathf.Clamp(value, 0f, 1f);
}
}
/**
* Radius value scaled to 0-1.
*/
public float normalizedRadius
{
get
{
return (_radius - brushRadiusMin) / (brushRadiusMax - brushRadiusMin);
}
}
/**
* Set the object's default values.
*/
public void SetDefaultValues()
{
brushRadiusMin = 0.001f;
brushRadiusMax = 5f;
radius = 1f;
falloff = .5f;
strength = 1f;
}
public z_BrushSettings DeepCopy()
{
z_BrushSettings copy = ScriptableObject.CreateInstance<z_BrushSettings>();
this.CopyTo(copy);
return copy;
}
/**
* Copy all properties to target
*/
public void CopyTo(z_BrushSettings target)
{
target.name = this.name;
target.brushRadiusMin = this.brushRadiusMin;
target.brushRadiusMax = this.brushRadiusMax;
target._radius = this._radius;
target._falloff = this._falloff;
target._strength = this._strength;
target._curve = new AnimationCurve(this._curve.keys);
target.allowNonNormalizedFalloff = this.allowNonNormalizedFalloff;
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushSettings.cs.meta


fileFormatVersion: 2
guid: 0c229c73eab51b9478029375e5ca314a
timeCreated: 1445009323
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

100
Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushTarget.cs


using UnityEngine;
using System.Collections.Generic;
using System.Linq;
namespace Polybrush
{
/**
* Stores information about the object a brush is currently hovering.
*/
public class z_BrushTarget : z_IValid
{
// List of hit locations on this target mesh.
public List<z_RaycastHit> raycastHits = new List<z_RaycastHit>();
private float[] _weights = null;
// The GameObject the brush is currently hovering.
[SerializeField] z_EditableObject _editableObject = null;
// Getter for editableObject target
public z_EditableObject editableObject { get { return _editableObject; } }
// Convenience getter for editableObject.gameObject
public GameObject gameObject { get { return editableObject == null ? null : editableObject.gameObject; } }
// Convenience getter for editableObject.gameObject.transform
public Transform transform { get { return editableObject == null ? null : editableObject.gameObject.transform; } }
// Convenience getter for gameObject.transform.localToWorldMatrix
public Matrix4x4 localToWorldMatrix { get { return editableObject == null ? Matrix4x4.identity : editableObject.gameObject.transform.localToWorldMatrix; } }
// Convenience getter for editableObject.editMesh.vertexCount
public int vertexCount { get { return _editableObject.editMesh.vertexCount; } }
/**
* Constructor.
*/
public z_BrushTarget(z_EditableObject editableObject) : this(editableObject, new List<z_RaycastHit>()) {}
/**
* Explicit constructor.
*/
public z_BrushTarget(z_EditableObject editableObject, List<z_RaycastHit> hits)
{
this.raycastHits = hits;
this._editableObject = editableObject;
this._weights = new float[this._editableObject.editMesh.vertexCount];
}
~z_BrushTarget()
{}
public void ClearRaycasts()
{
foreach(z_RaycastHit hit in raycastHits)
hit.ReleaseWeights();
raycastHits.Clear();
}
/**
* Returns an array of weights where each index is the max of all raycast hits.
*/
public float[] GetAllWeights(bool rebuildCache = false)
{
z_Mesh mesh = editableObject.editMesh;
int vertexCount = mesh.vertexCount;
if(mesh == null)
return null;
if(!rebuildCache)
return _weights;
for(int i = 0; i < vertexCount; i++)
_weights[i] = 0f;
for(int i = 0; i < raycastHits.Count; i++)
{
if(raycastHits[i].weights != null)
{
float[] w = raycastHits[i].weights;
for(int n = 0; n < vertexCount; n++)
if(w[n] > _weights[n])
_weights[n] = w[n];
}
}
return _weights;
}
public bool IsValid { get { return editableObject.IsValid(); } }
public override string ToString()
{
return string.Format("valid: {0}\nvertices: {1}", IsValid, IsValid ? editableObject.vertexCount : 0);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_BrushTarget.cs.meta


fileFormatVersion: 2
guid: 46a79edf648201540b38d44a61ac983f
timeCreated: 1445192091
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

47
Assets/ProCore/Polybrush/Code/Editor/Classes/z_ColorPalette.cs


using UnityEngine;
using System.Collections.Generic;
namespace Polybrush
{
/**
* A set of colors.
*/
[CreateAssetMenuAttribute(menuName = "Polybrush/Color Palette", fileName = "Color Palette", order = 801)]
[System.Serializable]
public class z_ColorPalette : ScriptableObject, z_IHasDefault
{
// The currently selected color.
public Color current = Color.white;
// All colors in this palette.
public List<Color> colors;
public void SetDefaultValues()
{
colors = new List<Color>()
{
new Color(0.000f, 0.122f, 0.247f, 1f),
new Color(0.000f, 0.455f, 0.851f, 1f),
new Color(0.498f, 0.859f, 1.000f, 1f),
new Color(0.224f, 0.800f, 0.800f, 1f),
new Color(0.239f, 0.600f, 0.439f, 1f),
new Color(0.180f, 0.800f, 0.251f, 1f),
new Color(0.004f, 1.000f, 0.439f, 1f),
new Color(1.000f, 0.863f, 0.000f, 1f),
new Color(1.000f, 0.522f, 0.106f, 1f),
new Color(1.000f, 0.255f, 0.212f, 1f),
new Color(0.522f, 0.078f, 0.294f, 1f),
new Color(0.941f, 0.071f, 0.745f, 1f),
new Color(0.694f, 0.051f, 0.788f, 1f),
new Color(0.067f, 0.067f, 0.067f, 1f),
new Color(0.667f, 0.667f, 0.667f, 1f),
new Color(0.867f, 0.867f, 0.867f, 1f)
};
}
public void CopyTo(z_ColorPalette target)
{
target.colors = new List<Color>(colors);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_ColorPalette.cs.meta


fileFormatVersion: 2
guid: faf7db05d259ffb47b2b158a2e462d2a
timeCreated: 1447173764
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

4
Assets/ProCore/Polybrush/Code/Editor/Classes/z_Delegate.cs


namespace Polybrush
{
public delegate void Delegate<T>(T value);
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_Delegate.cs.meta


fileFormatVersion: 2
guid: 90ccea956493f2d489e82ceb6126f6bb
timeCreated: 1447251751
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

507
Assets/ProCore/Polybrush/Code/Editor/Classes/z_EditableObject.cs


using UnityEngine;
using UnityEditor;
using System;
using System.Collections;
using System.Collections.Generic;
using System.Reflection;
using System.Linq;
namespace Polybrush
{
/**
* Stores a cache of the unmodified mesh and meshrenderer
* so that the z_Editor can work non-destructively. Also
* handles ProBuilder compatibility so that brush modes don't
* have to deal with it.
*/
public class z_EditableObject : IEquatable<z_EditableObject>, z_IValid
{
const string INSTANCE_MESH_GUID = null;
private static HashSet<string> UnityPrimitiveMeshNames = new HashSet<string>()
{
"Sphere",
"Capsule",
"Cylinder",
"Cube",
"Plane",
"Quad"
};
// The GameObject being modified.
public GameObject gameObject = null;
// The mesh that is
private Mesh _graphicsMesh = null;
public Mesh graphicsMesh { get { return _graphicsMesh; } }
[System.Obsolete("Use graphicsMesh or editMesh instead")]
public Mesh mesh { get { return _graphicsMesh; } }
private z_Mesh _editMesh = null;
public z_Mesh editMesh { get { return _editMesh; } }
// The original mesh. Can be the same as mesh.
public Mesh originalMesh { get; private set; }
// Where this mesh originated.
public z_ModelSource source { get; private set; }
// If mesh was an asset or model, save the original GUID
// public string sourceGUID { get; private set; }
// Marks this object as having been modified.
public bool modified = false;
private T GetAttribute<T>(System.Func<Mesh, T> getter) where T : IList
{
if(usingVertexStreams)
{
int vertexCount = originalMesh.vertexCount;
T arr = getter(this.graphicsMesh);
if(arr != null && arr.Count == vertexCount)
return arr;
}
return getter(originalMesh);
}
/**
* Return a mesh that is the combination of both additionalVertexStreams and the originalMesh.
* - Position
* - UV0
* - UV2
* - UV3
* - UV4
* - Color
* - Tangent
* If usingVertexStreams is false, null is returned.
*/
private z_Mesh GetCompositeMesh()
{
if(_editMesh == null)
_editMesh = new z_Mesh();
_editMesh.Clear();
_editMesh.name = originalMesh.name;
_editMesh.vertices = GetAttribute<Vector3[]>(x => { return x.vertices; } );
_editMesh.normals = GetAttribute<Vector3[]>(x => { return x.normals; } );
_editMesh.colors = GetAttribute<Color32[]>(x => { return x.colors32; } );
_editMesh.tangents = GetAttribute<Vector4[]>(x => { return x.tangents; } );
_editMesh.uv0 = GetAttribute<List<Vector4>>(x => { List<Vector4> l = new List<Vector4>(); x.GetUVs(0, l); return l; } );
_editMesh.uv1 = GetAttribute<List<Vector4>>(x => { List<Vector4> l = new List<Vector4>(); x.GetUVs(1, l); return l; } );
_editMesh.uv2 = GetAttribute<List<Vector4>>(x => { List<Vector4> l = new List<Vector4>(); x.GetUVs(2, l); return l; } );
_editMesh.uv3 = GetAttribute<List<Vector4>>(x => { List<Vector4> l = new List<Vector4>(); x.GetUVs(3, l); return l; } );
_editMesh.subMeshCount = originalMesh.subMeshCount;
for(int i = 0; i < _editMesh.subMeshCount; i++)
_editMesh.SetTriangles(originalMesh.GetTriangles(i), i);
return _editMesh;
}
public int vertexCount { get { return originalMesh.vertexCount; } }
// Convenience getter for gameObject.GetComponent<MeshFilter>().
public MeshFilter meshFilter { get; private set; }
// Convenience getter for gameObject.transform
public Transform transform { get { return gameObject.transform; } }
// Convenience getter for gameObject.renderer
public Renderer renderer { get { return gameObject.GetComponent<MeshRenderer>(); } }
// If this object's mesh has been edited, isDirty will be flagged meaning that the mesh should not be
// cleaned up when finished editing.
public bool isDirty = false;
// Is the mesh owned by ProBuilder?
public bool isProBuilderObject { get; private set; }
// Reference to the pb_Object component (if it exists)
[SerializeField] private object probuilderMesh = null;
// Is the mesh using additional vertex streams?
public bool usingVertexStreams { get; private set; }
// Container for additionalVertexStreams. @todo remove when Unity fixes
public z_AdditionalVertexStreams additionalVertexStreams;
// Did this mesh already have an additionalVertexStreams mesh?
private bool hadVertexStreams = true;
/// <summary>
/// Shorthand for checking if object and mesh are non-null.
/// </summary>
public bool IsValid
{
get
{
if(gameObject == null || graphicsMesh == null)
return false;
if(isProBuilderObject && probuilderMesh != null)
{
object vertexCount = z_ReflectionUtil.GetValue(probuilderMesh, z_ReflectionUtil.ProBuilderObjectType, "vertexCount");
if(vertexCount != null)
{
if(_editMesh != null && _editMesh.vertexCount != (int)vertexCount)
{
return false;
}
}
}
return true;
}
}
/**
* Public constructor for editable objects. Guarantees that a mesh
* is editable and takes care of managing the asset.
*/
public static z_EditableObject Create(GameObject go)
{
if(go == null)
return null;
MeshFilter mf = go.GetComponent<MeshFilter>();
SkinnedMeshRenderer sf = go.GetComponent<SkinnedMeshRenderer>();
if(!mf && !sf)
{
mf = go.GetComponentsInChildren<MeshFilter>().FirstOrDefault();
sf = go.GetComponentsInChildren<SkinnedMeshRenderer>().FirstOrDefault();
}
if((mf == null || mf.sharedMesh == null) && (sf == null || sf.sharedMesh == null))
return null;
return new z_EditableObject(go);
}
/**
* Internal constructor.
* \sa Create
*/
private z_EditableObject(GameObject go)
{
this.gameObject = go;
isProBuilderObject = z_ReflectionUtil.IsProBuilderObject(go);
Mesh advsMesh = null;
MeshRenderer meshRenderer = this.gameObject.GetComponent<MeshRenderer>();
meshFilter = this.gameObject.GetComponent<MeshFilter>();
SkinnedMeshRenderer skinFilter = this.gameObject.GetComponent<SkinnedMeshRenderer>();
usingVertexStreams = false;
this.originalMesh = meshFilter.sharedMesh;
if(originalMesh == null && skinFilter != null)
this.originalMesh = skinFilter.sharedMesh;
if( z_Pref.GetBool(z_Pref.additionalVertexStreams, false) && !isProBuilderObject)
{
if(meshRenderer != null || skinFilter != null)
{
additionalVertexStreams = gameObject.GetComponent<z_AdditionalVertexStreams>();
if(additionalVertexStreams == null)
additionalVertexStreams = gameObject.AddComponent<z_AdditionalVertexStreams>();
advsMesh = additionalVertexStreams.m_AdditionalVertexStreamMesh;
if(advsMesh == null)
{
advsMesh = new Mesh();
advsMesh.vertices = originalMesh.vertices;
advsMesh.name = string.Format("{0}({1})", originalMesh.name, additionalVertexStreams.GetInstanceID());
hadVertexStreams = false;
}
usingVertexStreams = true;
}
}
if(!usingVertexStreams)
{
// if editing a non-scene instance mesh, make it an instance
// (unity primitives are a special case - they *are* scene instances but they also aren't)
string guid = INSTANCE_MESH_GUID;
this.source = z_EditorUtility.GetMeshGUID(originalMesh, ref guid);
if(source != z_ModelSource.Scene || UnityPrimitiveMeshNames.Contains(originalMesh.name))
this._graphicsMesh = z_MeshUtility.DeepCopy(meshFilter.sharedMesh);
else
this._graphicsMesh = originalMesh;
}
else
{
this._graphicsMesh = advsMesh;
this.source = z_ModelSource.AdditionalVertexStreams;
}
// if it's a probuilder object rebuild the mesh without optimization
if( isProBuilderObject )
{
object pb = probuilderMesh = go.GetComponent("pb_Object");
if(pb != null)
{
z_ReflectionUtil.ProBuilder_ToMesh(pb);
z_ReflectionUtil.ProBuilder_Refresh(pb, (ushort) 0xFF);
}
if(setVerticesMethod == null)
{
setVerticesMethod = pb.GetType().GetMethod(
"SetVertices",
BindingFlags.Public | BindingFlags.Instance,
null,
SetVerticesArguments,
null);
}
if(setUvsMethod == null)
{
setUvsMethod = pb.GetType().GetMethod(
"SetUVs",
BindingFlags.Public | BindingFlags.Instance,
null,
SetUVsArguments,
null);
}
if(setTangentsMethod == null)
{
setTangentsMethod = pb.GetType().GetMethod(
"SetTangents",
BindingFlags.Public | BindingFlags.Instance,
null,
new Type[] { typeof(Vector4[]) },
null);
}
if(setColorsMethod == null)
{
setColorsMethod = pb.GetType().GetMethod(
"SetColors",
BindingFlags.Public | BindingFlags.Instance,
null,
new Type[] { typeof(Color[]) },
null);
}
}
_editMesh = GetCompositeMesh();
if(!isProBuilderObject)
SetMesh(graphicsMesh);
}
~z_EditableObject()
{
// clean up the composite mesh (if required)
// delayCall ensures Destroy is called on main thread
// if(editMesh != null)
// EditorApplication.delayCall += () => { GameObject.DestroyImmediate(editMesh); };
}
/**
* Sets the MeshFilter.sharedMesh or SkinnedMeshRenderer.sharedMesh to @mesh.
*/
private void SetMesh(Mesh m)
{
if( gameObject != null )
{
if(usingVertexStreams)
{
additionalVertexStreams.SetAdditionalVertexStreamsMesh(m);
}
else
{
MeshFilter meshFilter = gameObject.GetComponent<MeshFilter>();
if(meshFilter != null)
{
meshFilter.sharedMesh = m;
}
else
{
SkinnedMeshRenderer mr = gameObject.GetComponent<SkinnedMeshRenderer>();
if(mr != null)
mr.sharedMesh = m;
}
}
}
}
private static readonly Type[] SetVerticesArguments = new Type[] { typeof(Vector3[]) };
private static readonly Type[] SetUVsArguments = new Type[] { typeof(int), typeof(List<Vector4>) };
private static MethodInfo setVerticesMethod;
private static MethodInfo setColorsMethod;
private static MethodInfo setTangentsMethod;
private static MethodInfo setUvsMethod;
/**
* Applies mesh changes back to the pb_Object (if necessary). Optionally does a
* mesh rebuild.
* @rebuildMesh only applies to ProBuilder meshes.
* @optimize determines if the mesh collisions are rebuilt (if that option is enabled) or if
* the mehs is a probuilder object, the mesh is optimized (condensed to share verts, other
* otpimziations etc)
*/
public void Apply(bool rebuildMesh, bool optimize = false)
{
if(usingVertexStreams)
{
if( z_Pref.GetBool(z_Pref.rebuildNormals) )
z_MeshUtility.RecalculateNormals(editMesh);
editMesh.ApplyAttributesToUnityMesh(graphicsMesh);
graphicsMesh.UploadMeshData(false);
EditorUtility.SetDirty(gameObject.GetComponent<MeshRenderer>());
return;
}
// if it's a probuilder object rebuild the mesh without optimization
if( isProBuilderObject )
{
object pb = probuilderMesh;
if(pb != null)
{
// Set the pb_Object.vertices array so that pb_Editor.UpdateSelection
// can draw the wireframes correctly.
if(setVerticesMethod != null)
setVerticesMethod.Invoke(pb, new object[] { editMesh.vertices } );
if(!optimize)
goto NonProbuilderMeshRebuild;
Color[] colors = System.Array.ConvertAll(editMesh.colors, x => (Color) x);
if(setColorsMethod != null && colors != null && colors.Length == vertexCount)
setColorsMethod.Invoke(pb, new object[] { colors } );
Vector4[] tangents = editMesh.tangents;
if(setTangentsMethod != null && tangents != null && tangents.Length == vertexCount)
setTangentsMethod.Invoke(pb, new object[] { tangents } );
// Check if UV3/4 have been modified
List<Vector4> uv3 = editMesh.GetUVs(2);
List<Vector4> uv4 = editMesh.GetUVs(3);
if(setUvsMethod != null && uv3.Count == vertexCount)
setUvsMethod.Invoke(pb, new object[] { 2, uv3 } );
if(setUvsMethod != null && uv4.Count == vertexCount)
setUvsMethod.Invoke(pb, new object[] { 3, uv4 } );
if(rebuildMesh)
{
z_ReflectionUtil.ProBuilder_ToMesh(pb);
z_ReflectionUtil.ProBuilder_Refresh(pb, (ushort) (optimize ? 0xFF : (0x2 | 0x4 | 0x8)));
}
return;
}
}
NonProbuilderMeshRebuild:
if( z_Pref.GetBool(z_Pref.rebuildNormals) )
z_MeshUtility.RecalculateNormals(editMesh);
editMesh.ApplyAttributesToUnityMesh(graphicsMesh);
graphicsMesh.RecalculateBounds();
// expensive call, delay til optimize is enabled.
if(z_Pref.GetBool(z_Pref.rebuildCollisions) && optimize)
{
MeshCollider mc = gameObject.GetComponent<MeshCollider>();
if(mc != null)
{
mc.sharedMesh = null;
mc.sharedMesh = graphicsMesh;
}
}
}
/**
* Apply the mesh channel attributes to the graphics mesh.
*/
public void ApplyMeshAttributes(z_MeshChannel channel = z_MeshChannel.All)
{
editMesh.ApplyAttributesToUnityMesh(_graphicsMesh, channel);
if(usingVertexStreams)
_graphicsMesh.UploadMeshData(false);
}
/**
* Set the MeshFilter or SkinnedMeshRenderer back to originalMesh.
*/
public void Revert()
{
if(usingVertexStreams)
{
if(!hadVertexStreams)
{
GameObject.DestroyImmediate(graphicsMesh);
MeshRenderer mr = gameObject.GetComponent<MeshRenderer>();
mr.additionalVertexStreams = null;
}
return;
}
if( originalMesh == null ||
(source == z_ModelSource.Scene && !UnityPrimitiveMeshNames.Contains(originalMesh.name)) ||
isProBuilderObject
)
{
if( isProBuilderObject )
Apply(true, true);
return;
}
if(graphicsMesh != null)
GameObject.DestroyImmediate(graphicsMesh);
SetMesh(originalMesh);
}
public bool Equals(z_EditableObject rhs)
{
return rhs.GetHashCode() == this.GetHashCode();
}
public override bool Equals(object rhs)
{
if(rhs == null)
return this.gameObject == null ? true : false;
else if(this.gameObject == null)
return false;
if(rhs is z_EditableObject)
return rhs.Equals(this);
else if(rhs is GameObject)
return ((GameObject)rhs).GetHashCode() == gameObject.GetHashCode();
return false;
}
public override int GetHashCode()
{
return gameObject != null ? gameObject.GetHashCode() : base.GetHashCode();
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_EditableObject.cs.meta


fileFormatVersion: 2
guid: 5e4f91c03ccd126459fa1e1c72a15ee3
timeCreated: 1445102105
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

66
Assets/ProCore/Polybrush/Code/Editor/Classes/z_LocalPref.cs


using System;
using UnityEngine;
namespace Polybrush
{
public class z_LocalPref<T> where T : IEquatable<T>
{
public string key;
[SerializeField] private T _value;
public T prefValue
{
get
{
return _value;
}
set
{
if( !_value.Equals(value) )
{
_value = value;
if( typeof(T) == typeof(bool) )
z_Pref.SetBool(key, (bool) ((object) _value));
else if( typeof(T) == typeof(Color) )
z_Pref.SetColor(key, (Color) ((object) _value));
else if( typeof(T) == typeof(int) )
z_Pref.SetInt(key, (int) ((object) _value));
else if( typeof(T) == typeof(float) )
z_Pref.SetFloat(key, (float) ((object) _value));
else if( typeof(T) == typeof(Gradient) )
z_Pref.SetGradient(key, (Gradient) ((object) _value));
}
}
}
public z_LocalPref(string key, T initialValueIfNoKey = default(T))
{
this.key = key;
// box and unbox because due to casting. not ideal, but the alternative is writing
// z_LocalPref overloads for each type.
if( typeof(T) == typeof(bool) )
this._value = (T)((object)z_Pref.GetBool(key, (bool) (object) initialValueIfNoKey));
else if( typeof(T) == typeof(Color) )
this._value = (T)((object)z_Pref.GetColor(key, (Color) (object) initialValueIfNoKey));
else if( typeof(T) == typeof(int) )
this._value = (T)((object)z_Pref.GetInt(key, (int) (object) initialValueIfNoKey));
else if( typeof(T) == typeof(float) )
this._value = (T)((object)z_Pref.GetFloat(key, (float) (object) initialValueIfNoKey));
else if( typeof(T) == typeof(Gradient) )
this._value = (T)((object)z_Pref.GetGradient(key));
else
this._value = default(T);
}
public static implicit operator T(z_LocalPref<T> pref)
{
if(pref != null)
return pref._value;
return default(T);
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_LocalPref.cs.meta


fileFormatVersion: 2
guid: 35ad3294bfb27254f9e56bee1d8029da
timeCreated: 1479745154
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

30
Assets/ProCore/Polybrush/Code/Editor/Classes/z_PrefabAndSettings.cs


using UnityEngine;
namespace Polybrush
{
[System.Serializable]
public class z_PlacementSettings
{
public Vector2 rotationRange;
public Vector2 scaleRange;
public z_PlacementSettings()
{
rotationRange = new Vector2(0f, 360f);
scaleRange = new Vector2(.7f, 1.3f);
}
}
[System.Serializable]
public class z_PrefabAndSettings
{
public GameObject gameObject;
public z_PlacementSettings settings;
public z_PrefabAndSettings(GameObject go)
{
gameObject = go;
settings = new z_PlacementSettings();
}
}
}

12
Assets/ProCore/Polybrush/Code/Editor/Classes/z_PrefabAndSettings.cs.meta


fileFormatVersion: 2
guid: b220878ed9d9d584cb091fcb07d21e0a
timeCreated: 1481037324
licenseType: Store
MonoImporter:
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

20
Assets/ProCore/Polybrush/Code/Editor/Classes/z_PrefabPalette.cs


using UnityEngine;
using System.Collections.Generic;
namespace Polybrush
{
/**
* A set of Prefabs.
*/
[CreateAssetMenuAttribute(menuName = "Polybrush/Prefab Palette", fileName = "Prefab Palette", order = 802)]
[System.Serializable]
public class z_PrefabPalette : ScriptableObject, z_IHasDefault
{
public List<z_PrefabAndSettings> prefabs;
public void SetDefaultValues()
{
prefabs = new List<z_PrefabAndSettings>() {};
}
}
}

部分文件因为文件数量过多而无法显示

正在加载...
取消
保存