Преглед изворни кода

[unity] New separate LWRP shaders UPM package content added to repository. Cleanup and restructuring / adaptations of existing shaders. Added and improved warnings in case of problematic texture and material settings. See #1255.

Harald Csaszar пре 6 година
родитељ
комит
195ae91db1
75 измењених фајлова са 5701 додато и 152 уклоњено
  1. 5 0
      spine-unity/Assets/Spine/Editor/spine-unity/Editor/SkeletonRendererInspector.cs
  2. 14 18
      spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs
  3. 72 6
      spine-unity/Assets/Spine/Editor/spine-unity/Modules/Shaders/Sprite/Editor/SpineSpriteShaderGUI.cs
  4. 8 0
      spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs
  5. 5 6
      spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Spine-SkeletonLit.shader
  6. 4 0
      spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc
  7. 69 122
      spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc
  8. 8 0
      spine-unity/Assets/Spine/Runtime/spine-unity/Utility.meta
  9. 114 0
      spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs
  10. 11 0
      spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs.meta
  11. 8 0
      spine-unity/Packages.meta
  12. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders.meta
  13. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Examples.meta
  14. 1822 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Examples/LWRP Shaders.unity
  15. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Examples/LWRP Shaders.unity.meta
  16. 26 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/LICENSE.md
  17. 7 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/LICENSE.md.meta
  18. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders.meta
  19. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes.meta
  20. 37 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Common-ShadowCasterPass-LW.hlsl
  21. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Common-ShadowCasterPass-LW.hlsl.meta
  22. 42 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-DepthOnlyPass-LW.hlsl
  23. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-DepthOnlyPass-LW.hlsl.meta
  24. 48 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Input-LW.hlsl
  25. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Input-LW.hlsl.meta
  26. 76 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ForwardPass-LW.hlsl
  27. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ForwardPass-LW.hlsl.meta
  28. 24 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ShadowCasterPass-LW.hlsl
  29. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ShadowCasterPass-LW.hlsl.meta
  30. 267 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ForwardPass-LW.hlsl
  31. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ForwardPass-LW.hlsl.meta
  32. 27 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ShadowCasterPass-LW.hlsl
  33. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ShadowCasterPass-LW.hlsl.meta
  34. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders.meta
  35. 2 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/ShaderShared.cginc
  36. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/ShaderShared.cginc.meta
  37. 2 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/SpriteLighting.cginc
  38. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/SpriteLighting.cginc.meta
  39. 161 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-SkeletonLit-LW.shader
  40. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-SkeletonLit-LW.shader.meta
  41. 222 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-Sprite-LW.shader
  42. 9 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-Sprite-LW.shader.meta
  43. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons.meta
  44. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP.meta
  45. 696 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro.json
  46. 7 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro.json.meta
  47. 24 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro_SkeletonData.asset
  48. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro_SkeletonData.asset.meta
  49. 272 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.atlas.txt
  50. 7 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.atlas.txt.meta
  51. BIN
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.png
  52. 145 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.png.meta
  53. 17 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Atlas.asset
  54. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Atlas.asset.meta
  55. 81 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Material.mat
  56. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Material.mat.meta
  57. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP.meta
  58. BIN
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-emission.png
  59. 145 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-emission.png.meta
  60. BIN
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-normals.png
  61. 145 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-normals.png.meta
  62. 41 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.atlas.txt
  63. 7 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.atlas.txt.meta
  64. 510 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.json
  65. 7 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.json.meta
  66. BIN
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.png
  67. 145 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.png.meta
  68. 17 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Atlas.asset
  69. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Atlas.asset.meta
  70. 82 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Material.mat
  71. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Material.mat.meta
  72. 24 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_SkeletonData.asset
  73. 8 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_SkeletonData.asset.meta
  74. 22 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/package.json
  75. 7 0
      spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/package.json.meta

+ 5 - 0
spine-unity/Assets/Spine/Editor/spine-unity/Editor/SkeletonRendererInspector.cs

@@ -299,6 +299,11 @@ namespace Spine.Unity.Editor {
 
 			if (!valid)
 				return;
+			
+			string errorMessage = null;
+			if (MaterialChecks.IsMaterialSetupProblematic((SkeletonRenderer)this.target, ref errorMessage)) {
+				EditorGUILayout.HelpBox(errorMessage, MessageType.Error, true);
+			}
 
 			// More Render Options...
 			using (new SpineInspectorUtility.BoxScope()) {

+ 14 - 18
spine-unity/Assets/Spine/Editor/spine-unity/Editor/SpineEditorUtilities.cs

@@ -175,9 +175,7 @@ namespace Spine.Unity.Editor {
 		public static string editorPath = "";
 		public static string editorGUIPath = "";
 		public static bool initialized;
-
-		static int STRAIGHT_ALPHA_PARAM_ID = Shader.PropertyToID("_StraightAlphaInput");
-
+		
 	#if NEW_PREFERENCES_SETTINGS_PROVIDER
 		static class SpineSettingsProviderRegistration
 		{
@@ -314,21 +312,15 @@ namespace Spine.Unity.Editor {
 			int extensionPos = texturePath.LastIndexOf('.');
 			string materialPath = texturePath.Substring(0, extensionPos) + "_Material.mat";
 			Material material = AssetDatabase.LoadAssetAtPath<Material>(materialPath);
-			if (material == null || !material.HasProperty(STRAIGHT_ALPHA_PARAM_ID)) {
-				return true; // non-Spine shader used on material
-			}
-			
-			// 'sRGBTexture = true' generates incorrectly weighted mipmaps at PMA textures,
-			// causing white borders due to undesired custom weighting.
-			if (texImporter.sRGBTexture && texImporter.mipmapEnabled && PlayerSettings.colorSpace == ColorSpace.Gamma) {
-				Debug.LogWarningFormat("`{0}` : Problematic Texture Settings found: When enabling `Generate Mip Maps` in Gamma color space, it is recommended to disable `sRGB (Color Texture)`. Otherwise you will receive white border artifacts on an atlas exported with default `Premultiply alpha` settings.\n(You can disable this warning in `Edit - Preferences - Spine`)", texturePath);
-			}
-			if (texImporter.alphaIsTransparency) {
-				int straightAlphaValue = material.GetInt(STRAIGHT_ALPHA_PARAM_ID);
-				if (straightAlphaValue == 0) {
-					string materialName = System.IO.Path.GetFileName(materialPath);
-					Debug.LogWarningFormat("`{0}` and material `{1}` : Incorrect Texture / Material Settings found: It is strongly recommended to disable `Alpha Is Transparency` on `Premultiply alpha` textures.\nAssuming `Premultiply alpha` texture because `Straight Alpha Texture` is disabled at material). (You can disable this warning in `Edit - Preferences - Spine`)", texturePath, materialName);
-				}
+
+			if (material == null)
+				return true;
+
+			string errorMessage = null;
+			if (MaterialChecks.IsTextureSetupProblematic(material, PlayerSettings.colorSpace,
+				texImporter. sRGBTexture, texImporter. mipmapEnabled, texImporter. alphaIsTransparency,
+				texturePath, materialPath, ref errorMessage)) {
+				Debug.LogWarning(errorMessage);
 			}
 			return true;
 		}
@@ -860,6 +852,8 @@ namespace Spine.Unity.Editor {
 				// Import atlases first.
 				var atlases = new List<AtlasAssetBase>();
 				foreach (string ap in atlasPaths) {
+					if (ap.StartsWith("Packages"))
+						continue;
 					TextAsset atlasText = AssetDatabase.LoadAssetAtPath<TextAsset>(ap);
 					AtlasAssetBase atlas = IngestSpineAtlas(atlasText);
 					atlases.Add(atlas);
@@ -868,6 +862,8 @@ namespace Spine.Unity.Editor {
 				// Import skeletons and match them with atlases.
 				bool abortSkeletonImport = false;
 				foreach (string skeletonPath in skeletonPaths) {
+					if (skeletonPath.StartsWith("Packages"))
+						continue;
 					if (!reimport && CheckForValidSkeletonData(skeletonPath)) {
 						ReloadSkeletonData(skeletonPath);
 						continue;

+ 72 - 6
spine-unity/Assets/Spine/Editor/spine-unity/Modules/Shaders/Sprite/Editor/SpineSpriteShaderGUI.cs

@@ -29,6 +29,7 @@
 
 using UnityEngine;
 using UnityEditor;
+using Spine.Unity;
 
 using SpineInspectorUtility = Spine.Unity.Editor.SpineInspectorUtility;
 
@@ -36,6 +37,7 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 	static readonly string kShaderVertexLit = "Spine/Sprite/Vertex Lit";
 	static readonly string kShaderPixelLit = "Spine/Sprite/Pixel Lit";
 	static readonly string kShaderUnlit = "Spine/Sprite/Unlit";
+	static readonly string kShaderLitLW = "Lightweight Render Pipeline/Spine/Sprite";
 	static readonly int kSolidQueue = 2000;
 	static readonly int kAlphaTestQueue = 2450;
 	static readonly int kTransparentQueue = 3000;
@@ -54,6 +56,7 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 		VertexLit,
 		PixelLit,
 		Unlit,
+		LitLightweight
 	};
 
 	private enum eCulling {
@@ -120,6 +123,7 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 	static GUIContent _depthText = new GUIContent("Write to Depth", "Write to Depth Buffer by clipping alpha.");
 	static GUIContent _depthAlphaCutoffText = new GUIContent("Depth Alpha Cutoff", "Threshold for depth write alpha cutoff");
 	static GUIContent _shadowAlphaCutoffText = new GUIContent("Shadow Alpha Cutoff", "Threshold for shadow alpha cutoff");
+	static GUIContent _receiveShadowsText = new GUIContent("Receive Shadows", "When enabled, other GameObjects can cast shadows onto this GameObject. 'Write to Depth' has to be enabled in Lightweight RP.");
 	static GUIContent _fixedNormalText = new GUIContent("Fixed Normals", "If this is ticked instead of requiring mesh normals a Fixed Normal will be used instead (it's quicker and can result in better looking lighting effects on 2d objects).");
 	static GUIContent _fixedNormalDirectionText = new GUIContent("Fixed Normal Direction", "Should normally be (0,0,1) if in view-space or (0,0,-1) if in model-space.");
 	static GUIContent _adjustBackfaceTangentText = new GUIContent("Adjust Back-face Tangents", "Tick only if you are going to rotate the sprite to face away from the camera, the tangents will be flipped when this is the case to make lighting correct.");
@@ -128,7 +132,8 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 	static GUIContent[] _lightingModeOptions = {
 		new GUIContent("Vertex Lit"),
 		new GUIContent("Pixel Lit"),
-		new GUIContent("Unlit")
+		new GUIContent("Unlit"),
+		new GUIContent("Lit Lightweight")
 	};
 	static GUIContent _blendModeText = new GUIContent("Blend Mode", "Blend Mode");
 	static GUIContent[] _blendModeOptions = {
@@ -160,7 +165,7 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 	static GUIContent _meshRequiresTangentsText = new GUIContent("Note: Material requires a mesh with tangents.");
 	static GUIContent _meshRequiresNormalsText = new GUIContent("Note: Material requires a mesh with normals.");
 	static GUIContent _meshRequiresNormalsAndTangentsText = new GUIContent("Note: Material requires a mesh with Normals and Tangents.");
-
+	
 	const string _primaryMapsText = "Main Maps";
 	const string _depthLabelText = "Depth";
 	const string _shadowsText = "Shadows";
@@ -324,6 +329,10 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 						if (material.shader.name != kShaderUnlit)
 							_materialEditor.SetShader(Shader.Find(kShaderUnlit), false);
 						break;
+					case eLightMode.LitLightweight:
+						if (material.shader.name != kShaderLitLW)
+							_materialEditor.SetShader(Shader.Find(kShaderLitLW), false);
+						break;
 					}
 				}
 
@@ -351,6 +360,11 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 
 				dataChanged = true;
 			}
+
+			if (QualitySettings.activeColorSpace == ColorSpace.Linear &&
+				!EditorGUI.showMixedValue && blendMode == eBlendMode.PreMultipliedAlpha) {
+				EditorGUILayout.HelpBox(MaterialChecks.kPMANotSupportedLinearMessage, MessageType.Error, true);
+			}
 		}
 
 		//	GUILayout.Label(Styles.advancedText, EditorStyles.boldLabel);
@@ -554,12 +568,44 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 	}
 
 	protected virtual bool RenderShadowsProperties () {
+		bool dataChanged = false;
+
 		EditorGUI.BeginChangeCheck();
 		_materialEditor.RangeProperty(_shadowAlphaCutoff, _shadowAlphaCutoffText.text);
-		return EditorGUI.EndChangeCheck();
+		dataChanged = EditorGUI.EndChangeCheck();
+		bool areMixedShaders = false;
+		bool hasReceiveShadowsParameter = IsLWRPShader(_materialEditor, out areMixedShaders);
+
+		if (hasReceiveShadowsParameter) {
+			bool forceDisableReceiveShadows = !_writeToDepth.hasMixedValue && _writeToDepth.floatValue == 0;
+			EditorGUI.BeginDisabledGroup(forceDisableReceiveShadows);
+			
+			EditorGUI.BeginChangeCheck();
+			bool mixedValue;
+			bool enableReceive = !IsKeywordEnabled(_materialEditor, "_RECEIVE_SHADOWS_OFF", out mixedValue);
+			EditorGUI.showMixedValue = mixedValue;
+			enableReceive = EditorGUILayout.Toggle(_receiveShadowsText, enableReceive);
+
+			EditorGUI.showMixedValue = false;
+
+			if (EditorGUI.EndChangeCheck() || forceDisableReceiveShadows) {
+				SetKeyword(_materialEditor, "_RECEIVE_SHADOWS_OFF", !enableReceive || forceDisableReceiveShadows);
+				dataChanged = true;
+			}
+			EditorGUI.EndDisabledGroup(); // forceDisableReceiveShadows
+		}
+
+		return dataChanged;
 	}
 
 	protected virtual bool RenderSphericalHarmonicsProperties () {
+
+		bool areMixedShaders = false;
+		bool isLWRPShader = IsLWRPShader(_materialEditor, out areMixedShaders);
+		bool hasSHParameter = areMixedShaders || !isLWRPShader;
+		if (!hasSHParameter)
+			return false;
+		
 		EditorGUI.BeginChangeCheck();
 		bool mixedValue;
 		bool enabled = IsKeywordEnabled(_materialEditor, "_SPHERICAL_HARMONICS", out mixedValue);
@@ -828,6 +874,21 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 			m.DisableKeyword(keyword);
 	}
 
+	static bool IsLWRPShader (MaterialEditor editor, out bool mixedValue) {
+		
+		mixedValue = false;
+		bool isAnyLWRPShader = false;
+		foreach (Material material in editor.targets) {
+			if (material.shader.name == kShaderLitLW) {
+				isAnyLWRPShader = true;
+			}
+			else if (isAnyLWRPShader) {
+				mixedValue = true;
+			}
+		}
+		return isAnyLWRPShader;
+	}
+
 	static bool IsKeywordEnabled (MaterialEditor editor, string keyword, out bool mixedValue) {
 		bool keywordEnabled = ((Material)editor.target).IsKeywordEnabled(keyword);
 		mixedValue = false;
@@ -845,13 +906,18 @@ public class SpineSpriteShaderGUI : ShaderGUI {
 	static eLightMode GetMaterialLightMode (Material material) {
 		if (material.shader.name == kShaderPixelLit) {
 			return eLightMode.PixelLit;
-		} else if (material.shader.name == kShaderUnlit) {
+		}
+		else if (material.shader.name == kShaderUnlit) {
 			return eLightMode.Unlit;
-		} else {
+		}
+		else if (material.shader.name == kShaderLitLW) {
+			return eLightMode.LitLightweight;
+		}
+		else { // if (material.shader.name == kShaderVertexLit)
 			return eLightMode.VertexLit;
 		}
 	}
-
+	
 	static eBlendMode GetMaterialBlendMode (Material material) {
 		if (material.IsKeywordEnabled("_ALPHABLEND_ON"))
 			return eBlendMode.StandardAlpha;

+ 8 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Components/SkeletonRenderer.cs

@@ -306,6 +306,14 @@ namespace Spine.Unity {
 
 			if (OnRebuild != null)
 				OnRebuild(this);
+
+			#if UNITY_EDITOR
+			if (!Application.isPlaying) {
+				string errorMessage = null;
+				if (MaterialChecks.IsMaterialSetupProblematic(this, ref errorMessage))
+					Debug.LogWarningFormat("Problematic material setup at {0}: {1}", this.name, errorMessage);
+			}
+			#endif
 		}
 
 		/// <summary>

+ 5 - 6
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Spine-SkeletonLit.shader

@@ -64,14 +64,14 @@ Shader "Spine/Skeleton Lit" {
 
 			#pragma multi_compile __ POINT SPOT
 
-			half3 computeLighting (int idx, half3 dirToLight, half3 eyeNormal, half3 viewDir, half4 diffuseColor, half atten) {
+			half3 computeLighting (int idx, half3 dirToLight, half3 eyeNormal, half4 diffuseColor, half atten) {
 				half NdotL = max(dot(eyeNormal, dirToLight), 0.0);
 				// diffuse
 				half3 color = NdotL * diffuseColor.rgb * unity_LightColor[idx].rgb;
 				return color * atten;
 			}
 
-			half3 computeOneLight (int idx, float3 eyePosition, half3 eyeNormal, half3 viewDir, half4 diffuseColor) {
+			half3 computeOneLight (int idx, float3 eyePosition, half3 eyeNormal, half4 diffuseColor) {
 				float3 dirToLight = unity_LightPosition[idx].xyz;
 				half att = 1.0;
 
@@ -94,7 +94,7 @@ Shader "Spine/Skeleton Lit" {
 				#endif
 
 				att *= 0.5; // passed in light colors are 2x brighter than what used to be in FFP
-				return min (computeLighting (idx, dirToLight, eyeNormal, viewDir, diffuseColor, att), 1.0);
+				return min (computeLighting (idx, dirToLight, eyeNormal, diffuseColor, att), 1.0);
 			}
 
 			int4 unity_VertexLightParams; // x: light count, y: zero, z: one (y/z needed by d3d9 vs loop instruction)
@@ -103,7 +103,7 @@ Shader "Spine/Skeleton Lit" {
 				float3 pos : POSITION;
 				float3 normal : NORMAL;
 				half4 color : COLOR;
-				float3 uv0 : TEXCOORD0;
+				float2 uv0 : TEXCOORD0;
 				UNITY_VERTEX_INPUT_INSTANCE_ID
 			};
 
@@ -124,12 +124,11 @@ Shader "Spine/Skeleton Lit" {
 				half3 fixedNormal = half3(0,0,-1);
 				half3 eyeNormal = normalize(mul((float3x3)UNITY_MATRIX_IT_MV, fixedNormal));
 				//half3 eyeNormal = half3(0,0,1);
-				half3 viewDir = 0.0;
 
 				// Lights
 				half3 lcolor = half4(0,0,0,1).rgb + color.rgb * glstate_lightmodel_ambient.rgb;
 				for (int il = 0; il < LIGHT_LOOP_LIMIT; ++il) {
-					lcolor += computeOneLight(il, eyePos, eyeNormal, viewDir, color);
+					lcolor += computeOneLight(il, eyePos, eyeNormal, color);
 				}
 
 				color.rgb = lcolor.rgb;

+ 4 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc

@@ -1,7 +1,11 @@
 #ifndef SHADER_MATHS_INCLUDED
 #define SHADER_MATHS_INCLUDED
 
+#if defined(USE_LWRP)
+#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
+#else
 #include "UnityCG.cginc"
+#endif
 
 ////////////////////////////////////////
 // Maths functions

+ 69 - 122
spine-unity/Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc

@@ -1,7 +1,13 @@
+// Upgrade NOTE: upgraded instancing buffer 'PerDrawSprite' to new syntax.
+
 #ifndef SHADER_SHARED_INCLUDED
 #define SHADER_SHARED_INCLUDED
 
+#if defined(USE_LWRP)
+#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
+#else
 #include "UnityCG.cginc"
+#endif
 
 #ifdef UNITY_INSTANCING_ENABLED
 
@@ -34,14 +40,37 @@ inline float4 calculateWorldPos(float4 vertex)
 	return mul(unity_ObjectToWorld, vertex);
 }
 
+#if defined(USE_LWRP)
+// snaps post-transformed position to screen pixels
+inline float4 UnityPixelSnap(float4 pos)
+{
+	float2 hpc = _ScreenParams.xy * 0.5f;
+#if  SHADER_API_PSSL
+	// sdk 4.5 splits round into v_floor_f32(x+0.5) ... sdk 5.0 uses v_rndne_f32, for compatabilty we use the 4.5 version
+	float2 temp = ((pos.xy / pos.w) * hpc) + float2(0.5f, 0.5f);
+	float2 pixelPos = float2(__v_floor_f32(temp.x), __v_floor_f32(temp.y));
+#else
+	float2 pixelPos = round((pos.xy / pos.w) * hpc);
+#endif
+	pos.xy = pixelPos / hpc * pos.w;
+	return pos;
+}
+#endif
+
 inline float4 calculateLocalPos(float4 vertex)
 {
+#if !defined(USE_LWRP)
 #ifdef UNITY_INSTANCING_ENABLED
     vertex.xy *= _Flip.xy;
 #endif
+#endif
 
+#if defined(USE_LWRP)
+	float4 pos = TransformObjectToHClip(vertex.xyz);
+#else
 	float4 pos = UnityObjectToClipPos(vertex);
-	
+#endif
+
 #ifdef PIXELSNAP_ON
 	pos = UnityPixelSnap(pos);
 #endif
@@ -51,7 +80,11 @@ inline float4 calculateLocalPos(float4 vertex)
 
 inline half3 calculateWorldNormal(float3 normal)
 {
+#if defined(USE_LWRP)
+	return TransformObjectToWorldNormal(normal);
+#else
 	return UnityObjectToWorldNormal(normal);
+#endif
 }
 
 ////////////////////////////////////////
@@ -70,7 +103,8 @@ half3 UnpackScaleNormal(half4 packednormal, half bumpScale)
 	#else
 		half3 normal;
 		normal.xy = (packednormal.wy * 2 - 1);
-		#if (SHADER_TARGET >= 30)
+		// Note: we allow scaled normals in LWRP since we might be using fewer instructions.
+		#if (SHADER_TARGET >= 30) || defined(USE_LWRP)
 			// SM2.0: instruction count limitation
 			// SM2.0: normal scaler is not supported
 			normal.xy *= bumpScale;
@@ -83,7 +117,11 @@ half3 UnpackScaleNormal(half4 packednormal, half bumpScale)
 
 inline half3 calculateWorldTangent(float4 tangent)
 {
+#if defined(USE_LWRP)
+	return TransformObjectToWorldDir(tangent.xyz);
+#else
 	return UnityObjectToWorldDir(tangent);
+#endif
 }
 
 inline half3 calculateWorldBinormal(half3 normalWorld, half3 tangentWorld, float tangentSign)
@@ -109,84 +147,48 @@ inline half3 calculateNormalFromBumpMap(float2 texUV, half3 tangentWorld, half3
 // Blending functions
 //
 
-inline fixed4 calculateLitPixel(fixed4 texureColor, fixed4 color, fixed3 lighting) : SV_Target
+inline fixed4 prepareLitPixelForOutput(fixed4 finalPixel, fixed4 color) : SV_Target
 {
-	fixed4 finalPixel;
-	
 #if defined(_ALPHABLEND_ON)
 	//Normal Alpha
-	finalPixel.a = texureColor.a * color.a;
-	finalPixel.rgb = texureColor.rgb * color.rgb * (lighting * finalPixel.a);
+	finalPixel.rgb *= finalPixel.a;
 #elif defined(_ALPHAPREMULTIPLY_ON)
 	//Pre multiplied alpha
-	finalPixel = texureColor * color;
-	finalPixel.rgb *= lighting * color.a;
+	finalPixel.rgb *= color.a;
 #elif defined(_MULTIPLYBLEND)
 	//Multiply
-	finalPixel = texureColor * color;
-	finalPixel.rgb *= lighting;
 	finalPixel = lerp(fixed4(1,1,1,1), finalPixel, finalPixel.a);
 #elif defined(_MULTIPLYBLEND_X2)
 	//Multiply x2
-	finalPixel.rgb = texureColor.rgb * color.rgb * lighting * 2.0f;
-	finalPixel.a = color.a * texureColor.a;
+	finalPixel.rgb *= 2.0f;
 	finalPixel = lerp(fixed4(0.5f,0.5f,0.5f,0.5f), finalPixel, finalPixel.a);
 #elif defined(_ADDITIVEBLEND)
 	//Additive
-	finalPixel = texureColor * 2.0f * color;
-	finalPixel.rgb *= lighting * color.a;
+	finalPixel *= 2.0f;
+	finalPixel.rgb *= color.a;
 #elif defined(_ADDITIVEBLEND_SOFT)
 	//Additive soft
-	finalPixel = texureColor * color;
-	finalPixel.rgb *= lighting * finalPixel.a;
+	finalPixel.rgb *= finalPixel.a;
 #else 
 	//Opaque
 	finalPixel.a = 1;
-	finalPixel.rgb = texureColor.rgb * color.rgb * lighting;
 #endif
-	
 	return finalPixel;
 }
 
-inline fixed4 calculateLitPixel(fixed4 texureColor, fixed3 lighting) : SV_Target
+inline fixed4 calculateLitPixel(fixed4 texureColor, fixed4 color, fixed3 lighting) : SV_Target
 {
-	fixed4 finalPixel;
-	
-#if defined(_ALPHABLEND_ON)	
-	//Normal Alpha
-	finalPixel.a = texureColor.a;
-	finalPixel.rgb = texureColor.rgb * (lighting * finalPixel.a);
-#elif defined(_ALPHAPREMULTIPLY_ON)
-	//Pre multiplied alpha
-	finalPixel = texureColor;
-	finalPixel.rgb *= lighting;
-#elif defined(_MULTIPLYBLEND)
-	//Multiply
-	finalPixel = texureColor;
-	finalPixel.rgb *= lighting;
-	finalPixel = lerp(fixed4(1,1,1,1), finalPixel, finalPixel.a);
-#elif defined(_MULTIPLYBLEND_X2)
-	//Multiply x2
-	finalPixel.rgb = texureColor.rgb * lighting * 2.0f;
-	finalPixel.a = texureColor.a;
-	finalPixel = lerp(fixed4(0.5f,0.5f,0.5f,0.5f), finalPixel, finalPixel.a);
-#elif defined(_ADDITIVEBLEND)
-	//Additive
-	finalPixel = texureColor * 2.0f;
-	finalPixel.rgb *= lighting;
-#elif defined(_ADDITIVEBLEND_SOFT)
-	//Additive soft
-	finalPixel = texureColor;
-	finalPixel.rgb *= lighting * finalPixel.a;
-#else 
-	//Opaque
-	finalPixel.a = 1;
-	finalPixel.rgb = texureColor.rgb * lighting;
-#endif
-	
+	fixed4 finalPixel = texureColor * color * fixed4(lighting, 1);
+	finalPixel = prepareLitPixelForOutput(finalPixel, color);
 	return finalPixel;
 }
 
+inline fixed4 calculateLitPixel(fixed4 texureColor, fixed3 lighting) : SV_Target
+{
+	// note: we let the optimizer work, removed duplicate code.
+	return calculateLitPixel(texureColor, fixed4(1, 1, 1, 1), lighting);
+}
+
 inline fixed4 calculateAdditiveLitPixel(fixed4 texureColor, fixed4 color, fixed3 lighting) : SV_Target
 {
 	fixed4 finalPixel;
@@ -227,75 +229,14 @@ inline fixed4 calculateAdditiveLitPixel(fixed4 texureColor, fixed3 lighting) : S
 
 inline fixed4 calculatePixel(fixed4 texureColor, fixed4 color) : SV_Target
 {
-	fixed4 finalPixel;
-	
-#if defined(_ALPHABLEND_ON)	
-	//Normal Alpha
-	finalPixel.a = texureColor.a * color.a;
-	finalPixel.rgb = (texureColor.rgb * color.rgb) * finalPixel.a;
-#elif defined(_ALPHAPREMULTIPLY_ON)
-	//Pre multiplied alpha
-	finalPixel = texureColor * color;
-	finalPixel.rgb *= color.a;
-#elif defined(_MULTIPLYBLEND)
-	//Multiply
-	finalPixel = color * texureColor;
-	finalPixel = lerp(fixed4(1,1,1,1), finalPixel, finalPixel.a);
-#elif defined(_MULTIPLYBLEND_X2)
-	//Multiply x2
-	finalPixel.rgb = texureColor.rgb * color.rgb * 2.0f;
-	finalPixel.a = color.a * texureColor.a;
-	finalPixel = lerp(fixed4(0.5f,0.5f,0.5f,0.5f), finalPixel, finalPixel.a);
-#elif defined(_ADDITIVEBLEND)
-	//Additive
-	finalPixel = texureColor * 2.0f * color;
-#elif defined(_ADDITIVEBLEND_SOFT)
-	//Additive soft
-	finalPixel = color * texureColor;
-	finalPixel.rgb *= finalPixel.a;
-#else 
-	//Opaque
-	finalPixel.a = 1;
-	finalPixel.rgb = texureColor.rgb * color.rgb;
-#endif
-	
-	return finalPixel;
+	// note: we let the optimizer work, removed duplicate code.
+	return calculateLitPixel(texureColor, color, fixed3(1, 1, 1));
 }
 
 inline fixed4 calculatePixel(fixed4 texureColor) : SV_Target
 {
-	fixed4 finalPixel;
-	
-#if defined(_ALPHABLEND_ON)	
-	//Normal Alpha
-	finalPixel.a = texureColor.a;
-	finalPixel.rgb = texureColor.rgb * finalPixel.a;
-#elif defined(_ALPHAPREMULTIPLY_ON)
-	//Pre multiplied alpha
-	finalPixel = texureColor;
-#elif defined(_MULTIPLYBLEND)
-	//Multiply
-	finalPixel = texureColor;
-	finalPixel = lerp(fixed4(1,1,1,1), finalPixel, finalPixel.a);
-#elif defined(_MULTIPLYBLEND_X2)
-	//Multiply x2
-	finalPixel.rgb = texureColor.rgb * 2.0f;
-	finalPixel.a = texureColor.a;
-	finalPixel = lerp(fixed4(0.5f,0.5f,0.5f,0.5f), finalPixel, finalPixel.a);
-#elif defined(_ADDITIVEBLEND)
-	//Additive
-	finalPixel = texureColor * 2.0f;
-#elif defined(_ADDITIVEBLEND_SOFT)
-	//Additive soft
-	finalPixel = texureColor;
-	finalPixel.rgb *= finalPixel.a;
-#else
-	//Opaque
-	finalPixel.a = 1;
-	finalPixel.rgb = texureColor.rgb;
-#endif 
-
-	return finalPixel;
+	// note: we let the optimizer work, removed duplicate code.
+	return calculateLitPixel(texureColor, fixed4(1, 1, 1, 1), fixed3(1, 1, 1));
 }
 
 ////////////////////////////////////////
@@ -380,7 +321,7 @@ inline fixed4 adjustColor(fixed4 color)
 
 #if defined(_FOG) && (defined(FOG_LINEAR) || defined(FOG_EXP) || defined(FOG_EXP2))
 
-inline fixed4 applyFog(fixed4 pixel, float1 fogCoord) 
+inline fixed4 applyFog(fixed4 pixel, float fogCoordOrFactorAtLWRP) 
 {
 #if defined(_ADDITIVEBLEND) || defined(_ADDITIVEBLEND_SOFT)
 	//In additive mode blend from clear to black based on luminance
@@ -400,14 +341,19 @@ inline fixed4 applyFog(fixed4 pixel, float1 fogCoord)
 #else
 	//In opaque mode just return fog color;
 	fixed4 fogColor = unity_FogColor;
-#endif 
+#endif
 	
-	UNITY_APPLY_FOG_COLOR(fogCoord, pixel, fogColor);
+	#if defined(USE_LWRP)
+	pixel.rgb = MixFogColor(pixel.rgb, fogColor.rgb, fogCoordOrFactorAtLWRP);
+	#else
+	UNITY_APPLY_FOG_COLOR(fogCoordOrFactorAtLWRP, pixel, fogColor);
+	#endif
 	
 	return pixel;
 }
 
 #define APPLY_FOG(pixel, input) pixel = applyFog(pixel, input.fogCoord);
+#define APPLY_FOG_LWRP(pixel, fogFactor) pixel = applyFog(pixel, fogFactor);
 	
 #define APPLY_FOG_ADDITIVE(pixel, input) \
 	UNITY_APPLY_FOG_COLOR(input.fogCoord, pixel.rgb, fixed4(0,0,0,0)); // fog towards black in additive pass
@@ -415,6 +361,7 @@ inline fixed4 applyFog(fixed4 pixel, float1 fogCoord)
 #else
 
 #define APPLY_FOG(pixel, input)
+#define APPLY_FOG_LWRP(pixel, fogFactor)
 #define APPLY_FOG_ADDITIVE(pixel, input)
 
 #endif

+ 8 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Utility.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 52627c17e6dd4bf4dad4bdfc490ce823
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 114 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs

@@ -0,0 +1,114 @@
+/******************************************************************************
+ * Spine Runtimes License Agreement
+ * Last updated May 1, 2019. Replaces all prior versions.
+ *
+ * Copyright (c) 2013-2019, Esoteric Software LLC
+ *
+ * Integration of the Spine Runtimes into software or otherwise creating
+ * derivative works of the Spine Runtimes is permitted under the terms and
+ * conditions of Section 2 of the Spine Editor License Agreement:
+ * http://esotericsoftware.com/spine-editor-license
+ *
+ * Otherwise, it is permitted to integrate the Spine Runtimes into software
+ * or otherwise create derivative works of the Spine Runtimes (collectively,
+ * "Products"), provided that each user of the Products must obtain their own
+ * Spine Editor license and redistribution of the Products in any form must
+ * include this license and copyright notice.
+ *
+ * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS
+ * OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+ * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+ * NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
+ * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+ * BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS
+ * INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY
+ * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+ * NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+ * EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
+ *****************************************************************************/
+
+using System.Collections.Generic;
+using UnityEngine;
+
+#if UNITY_EDITOR
+
+namespace Spine.Unity {
+	/// <summary>Utility class providing methods to check material settings for incorrect combinations.</summary>
+	public class MaterialChecks {
+
+		static readonly int STRAIGHT_ALPHA_PARAM_ID = Shader.PropertyToID("_StraightAlphaInput");
+		static readonly string ALPHAPREMULTIPLY_ON_KEYWORD = "_ALPHAPREMULTIPLY_ON";
+
+		public static readonly string kPMANotSupportedLinearMessage = 
+			"Warning: Premultiply-alpha atlas textures not supported in Linear color space!\n\nPlease\n"
+			+ "a) re-export atlas as straight alpha texture with 'premultiply alpha' unchecked or\n"
+			+ "b) switch to Gamma color space via\nProject Settings - Player - Other Settings - Color Space.\n";
+
+		public static bool IsMaterialSetupProblematic (SkeletonRenderer renderer, ref string errorMessage) {
+			var materials = renderer.GetComponent<Renderer>().sharedMaterials;
+			bool isProblematic = false;
+			foreach (var mat in materials) {
+				isProblematic |= MaterialChecks.IsMaterialSetupProblematic(mat, ref errorMessage);
+			}
+			return isProblematic;
+		}
+
+		public static bool IsMaterialSetupProblematic(Material material, ref string errorMessage) {
+			return !IsColorSpaceSupported(material, ref errorMessage);
+		}
+
+		public static bool IsColorSpaceSupported (Material material, ref string errorMessage) {
+			if (QualitySettings.activeColorSpace == ColorSpace.Linear) {
+				if (IsPMAMaterial(material)) {
+					errorMessage += kPMANotSupportedLinearMessage;
+					return false;
+				}
+			}
+			return true;
+		}
+
+		
+		public static bool UsesSpineShader (Material material) {
+			return material.shader.name.Contains("Spine/");
+		}
+
+		public static bool IsTextureSetupProblematic (Material material, ColorSpace colorSpace,
+													bool sRGBTexture, bool mipmapEnabled, bool alphaIsTransparency,
+													string texturePath, string materialPath,
+													ref string errorMessage) {
+			if (material == null || !UsesSpineShader(material)) {
+				return false;
+			}
+
+			bool isProblematic = false;
+			if (IsPMAMaterial(material)) {
+				// 'sRGBTexture = true' generates incorrectly weighted mipmaps at PMA textures,
+				// causing white borders due to undesired custom weighting.
+				if (sRGBTexture && mipmapEnabled && colorSpace == ColorSpace.Gamma) {
+					errorMessage += string.Format("`{0}` : Problematic Texture Settings found: When enabling `Generate Mip Maps` in Gamma color space, it is recommended to disable `sRGB (Color Texture)` on `Premultiply alpha` textures. Otherwise you will receive white border artifacts on an atlas exported with default `Premultiply alpha` settings.\n(You can disable this warning in `Edit - Preferences - Spine`)\n", texturePath);
+					isProblematic = true;
+				}
+				if (alphaIsTransparency) {
+					string materialName = System.IO.Path.GetFileName(materialPath);
+					errorMessage += string.Format("`{0}` and material `{1}` : Problematic Texture / Material Settings found: It is recommended to disable `Alpha Is Transparency` on `Premultiply alpha` textures.\nAssuming `Premultiply alpha` texture because `Straight Alpha Texture` is disabled at material). (You can disable this warning in `Edit - Preferences - Spine`)\n", texturePath, materialName);
+					isProblematic = true;
+				}
+			}
+			else { // straight alpha texture
+				if (!alphaIsTransparency) {
+					string materialName = System.IO.Path.GetFileName(materialPath);
+					errorMessage += string.Format("`{0}` and material `{1}` : Incorrect Texture / Material Settings found: It is strongly recommended to enable `Alpha Is Transparency` on `Straight alpha` textures.\nAssuming `Straight alpha` texture because `Straight Alpha Texture` is enabled at material). (You can disable this warning in `Edit - Preferences - Spine`)\n", texturePath, materialName);
+					isProblematic = true;
+				}
+			}
+			return isProblematic;
+		}
+
+		static bool IsPMAMaterial (Material material) {
+			return (material.HasProperty(STRAIGHT_ALPHA_PARAM_ID) && material.GetInt(STRAIGHT_ALPHA_PARAM_ID) == 0) ||
+					material.IsKeywordEnabled(ALPHAPREMULTIPLY_ON_KEYWORD);
+		}
+	}
+}
+
+#endif // UNITY_EDITOR

+ 11 - 0
spine-unity/Assets/Spine/Runtime/spine-unity/Utility/MaterialChecks.cs.meta

@@ -0,0 +1,11 @@
+fileFormatVersion: 2
+guid: e68fa8db689084946adce454b83e6d4a
+MonoImporter:
+  externalObjects: {}
+  serializedVersion: 2
+  defaultReferences: []
+  executionOrder: 0
+  icon: {instanceID: 0}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: a32432c0568946f429800254981e7c02
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: c1c5be7b33880734d9675fdca40ac5d0
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Examples.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 03948dede49bd084c80f13cfb8f5c5c1
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 1822 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Examples/LWRP Shaders.unity

@@ -0,0 +1,1822 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!29 &1
+OcclusionCullingSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 2
+  m_OcclusionBakeSettings:
+    smallestOccluder: 5
+    smallestHole: 0.25
+    backfaceThreshold: 100
+  m_SceneGUID: 00000000000000000000000000000000
+  m_OcclusionCullingData: {fileID: 0}
+--- !u!104 &2
+RenderSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 9
+  m_Fog: 0
+  m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1}
+  m_FogMode: 3
+  m_FogDensity: 0.01
+  m_LinearFogStart: 0
+  m_LinearFogEnd: 300
+  m_AmbientSkyColor: {r: 0.007352948, g: 0.007352948, b: 0.007352948, a: 1}
+  m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1}
+  m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1}
+  m_AmbientIntensity: 1
+  m_AmbientMode: 3
+  m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1}
+  m_SkyboxMaterial: {fileID: 0}
+  m_HaloStrength: 0.5
+  m_FlareStrength: 1
+  m_FlareFadeSpeed: 3
+  m_HaloTexture: {fileID: 0}
+  m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0}
+  m_DefaultReflectionMode: 0
+  m_DefaultReflectionResolution: 128
+  m_ReflectionBounces: 1
+  m_ReflectionIntensity: 1
+  m_CustomReflection: {fileID: 0}
+  m_Sun: {fileID: 0}
+  m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1}
+  m_UseRadianceAmbientProbe: 0
+--- !u!157 &3
+LightmapSettings:
+  m_ObjectHideFlags: 0
+  serializedVersion: 11
+  m_GIWorkflowMode: 1
+  m_GISettings:
+    serializedVersion: 2
+    m_BounceScale: 1
+    m_IndirectOutputScale: 1
+    m_AlbedoBoost: 1
+    m_EnvironmentLightingMode: 0
+    m_EnableBakedLightmaps: 0
+    m_EnableRealtimeLightmaps: 0
+  m_LightmapEditorSettings:
+    serializedVersion: 12
+    m_Resolution: 2
+    m_BakeResolution: 40
+    m_AtlasSize: 1024
+    m_AO: 0
+    m_AOMaxDistance: 1
+    m_CompAOExponent: 1
+    m_CompAOExponentDirect: 0
+    m_ExtractAmbientOcclusion: 0
+    m_Padding: 2
+    m_LightmapParameters: {fileID: 0}
+    m_LightmapsBakeMode: 1
+    m_TextureCompression: 1
+    m_FinalGather: 0
+    m_FinalGatherFiltering: 1
+    m_FinalGatherRayCount: 256
+    m_ReflectionCompression: 2
+    m_MixedBakeMode: 1
+    m_BakeBackend: 0
+    m_PVRSampling: 1
+    m_PVRDirectSampleCount: 32
+    m_PVRSampleCount: 500
+    m_PVRBounces: 2
+    m_PVREnvironmentSampleCount: 500
+    m_PVREnvironmentReferencePointCount: 2048
+    m_PVRFilteringMode: 2
+    m_PVRDenoiserTypeDirect: 0
+    m_PVRDenoiserTypeIndirect: 0
+    m_PVRDenoiserTypeAO: 0
+    m_PVRFilterTypeDirect: 0
+    m_PVRFilterTypeIndirect: 0
+    m_PVRFilterTypeAO: 0
+    m_PVREnvironmentMIS: 0
+    m_PVRCulling: 1
+    m_PVRFilteringGaussRadiusDirect: 1
+    m_PVRFilteringGaussRadiusIndirect: 5
+    m_PVRFilteringGaussRadiusAO: 2
+    m_PVRFilteringAtrousPositionSigmaDirect: 0.5
+    m_PVRFilteringAtrousPositionSigmaIndirect: 2
+    m_PVRFilteringAtrousPositionSigmaAO: 1
+    m_ShowResolutionOverlay: 1
+    m_ExportTrainingData: 0
+  m_LightingDataAsset: {fileID: 0}
+  m_UseShadowmask: 0
+--- !u!196 &4
+NavMeshSettings:
+  serializedVersion: 2
+  m_ObjectHideFlags: 0
+  m_BuildSettings:
+    serializedVersion: 2
+    agentTypeID: 0
+    agentRadius: 0.5
+    agentHeight: 2
+    agentSlope: 45
+    agentClimb: 0.4
+    ledgeDropHeight: 0
+    maxJumpAcrossDistance: 0
+    minRegionArea: 2
+    manualCellSize: 0
+    cellSize: 0.16666667
+    manualTileSize: 0
+    tileSize: 256
+    accuratePlacement: 0
+    debug:
+      m_Flags: 0
+  m_NavMeshData: {fileID: 0}
+--- !u!1 &188173730
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 188173732}
+  - component: {fileID: 188173731}
+  - component: {fileID: 188173733}
+  m_Layer: 0
+  m_Name: '[LIGHT] Spotlight'
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!108 &188173731
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 188173730}
+  m_Enabled: 1
+  serializedVersion: 9
+  m_Type: 0
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_Intensity: 50.5
+  m_Range: 13.7
+  m_SpotAngle: 56
+  m_InnerSpotAngle: 24
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 2
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 1
+    m_NormalBias: 1
+    m_NearPlane: 0.1
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 0
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!4 &188173732
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 188173730}
+  m_LocalRotation: {x: 0.28993335, y: -0.20459291, z: -0.5390386, w: 0.7638834}
+  m_LocalPosition: {x: -1.85, y: 2.64, z: -6.397}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 195821303}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 12.793, y: -40.131, z: -75.40501}
+--- !u!114 &188173733
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 188173730}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 474bcb49853aa07438625e644c072ee6, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UsePipelineSettings: 1
+--- !u!1 &195821302
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 195821303}
+  m_Layer: 0
+  m_Name: LIGHTS
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &195821303
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 195821302}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 935283315}
+  - {fileID: 188173732}
+  - {fileID: 1387304066}
+  - {fileID: 770573971}
+  - {fileID: 970012831}
+  m_Father: {fileID: 0}
+  m_RootOrder: 5
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &394849622
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 394849623}
+  - component: {fileID: 394849625}
+  - component: {fileID: 394849624}
+  m_Layer: 5
+  m_Name: Text Tangents
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &394849623
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 394849622}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2107709637}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.24350001, y: 0}
+  m_AnchorMax: {x: 0.7477499, y: 0.22971462}
+  m_AnchoredPosition: {x: -1, y: -134}
+  m_SizeDelta: {x: -1, y: 14.849998}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &394849624
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 394849622}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 'Use of the lit sprite shaders with normal maps requires Tangents. Tangents
+    can be generated by SkeletonAnimation by checking "Solve Tangents" under the "Advanced..."
+    foldout in its inspector.''
+
+
+    The bundled sprite shaders are capable of assuming a fixed normal so there is
+    no need for "Add Normals" to be checked under Advanced.'
+--- !u!222 &394849625
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 394849622}
+  m_CullTransparentMesh: 0
+--- !u!1 &739509037
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 739509038}
+  - component: {fileID: 739509040}
+  - component: {fileID: 739509039}
+  m_Layer: 5
+  m_Name: Text LitLWRP
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &739509038
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 739509037}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2107709637}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.39850003, y: 0.7176755}
+  m_AnchorMax: {x: 0.94500005, y: 0.82522076}
+  m_AnchoredPosition: {x: 1, y: -0.5}
+  m_SizeDelta: {x: -2, y: -6.9000015}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &739509039
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 739509037}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.5943396, g: 0.5943396, b: 0.5943396, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: Raptor's "Lightweight Render Pipeline/Spine/Skeleton Lit" shader is the
+    lightweight equivalent shader of "Spine/Skeleton Lit".
+--- !u!222 &739509040
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 739509037}
+  m_CullTransparentMesh: 0
+--- !u!1 &770573969
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 770573971}
+  - component: {fileID: 770573970}
+  m_Layer: 0
+  m_Name: '[LIGHT] Green Spotlight'
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!108 &770573970
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 770573969}
+  m_Enabled: 1
+  serializedVersion: 9
+  m_Type: 0
+  m_Color: {r: 0.07586217, g: 1, b: 0, a: 1}
+  m_Intensity: 57.8
+  m_Range: 15
+  m_SpotAngle: 37
+  m_InnerSpotAngle: 27.044596
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 0
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.2
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 0
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!4 &770573971
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 770573969}
+  m_LocalRotation: {x: 0.0023665242, y: -0.5134523, z: -0.8581137, w: 0.0014160047}
+  m_LocalPosition: {x: 4.56, y: -8.77, z: -3.03}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 195821303}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 241.77, y: 179.351, z: 0.57199097}
+--- !u!1 &845252278
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 845252281}
+  - component: {fileID: 845252280}
+  - component: {fileID: 845252279}
+  m_Layer: 0
+  m_Name: Wall
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!23 &845252279
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 845252278}
+  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: 31321ba15b8f8eb4c954353edc038b1d, 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: 1
+  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!33 &845252280
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 845252278}
+  m_Mesh: {fileID: 10202, guid: 0000000000000000e000000000000000, type: 0}
+--- !u!4 &845252281
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 845252278}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0.28, y: 0.77, z: 2}
+  m_LocalScale: {x: 19.353024, y: 6.9264994, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &933136133
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 933136137}
+  - component: {fileID: 933136136}
+  - component: {fileID: 933136135}
+  - component: {fileID: 933136134}
+  m_Layer: 0
+  m_Name: stretchyman static
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &933136134
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 933136133}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: e075b9a3e08e2f74fbd651c858ab16ed, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 4e2ecc2a9b955f343964c702e58dcb53, type: 2}
+  initialSkinName: default
+  initialFlipX: 0
+  initialFlipY: 0
+  separatorSlotNames: []
+  zSpacing: 0
+  useClipping: 1
+  immutableTriangles: 0
+  pmaVertexColors: 1
+  clearStateOnDisable: 0
+  tintBlack: 0
+  singleSubmesh: 0
+  addNormals: 0
+  calculateTangents: 1
+  maskInteraction: 0
+  maskMaterials:
+    materialsMaskDisabled: []
+    materialsInsideMask: []
+    materialsOutsideMask: []
+  disableRenderingOnOverride: 1
+--- !u!23 &933136135
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 933136133}
+  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: 7ee25f95c3010c741aa55289d41e9b7d, 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: 1
+  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!33 &933136136
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 933136133}
+  m_Mesh: {fileID: 0}
+--- !u!4 &933136137
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 933136133}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -5.61, y: -3.69, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &935283313
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 935283315}
+  - component: {fileID: 935283314}
+  m_Layer: 0
+  m_Name: '[LIGHT] Point light'
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!108 &935283314
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 935283313}
+  m_Enabled: 1
+  serializedVersion: 9
+  m_Type: 2
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_Intensity: 0.18
+  m_Range: 5
+  m_SpotAngle: 30
+  m_InnerSpotAngle: 21.80208
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 0
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.2
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 0
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!4 &935283315
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 935283313}
+  m_LocalRotation: {x: -0, y: -0, z: -0, w: 1}
+  m_LocalPosition: {x: -5.81, y: 0.56, z: -0.9}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 195821303}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &970012830
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 970012831}
+  - component: {fileID: 970012832}
+  m_Layer: 0
+  m_Name: '[LIGHT] Spotlight (1)'
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &970012831
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 970012830}
+  m_LocalRotation: {x: 0.14641657, y: 0.112426646, z: -0.63453954, w: 0.7505212}
+  m_LocalPosition: {x: 7.54, y: 3.02, z: -5.88}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 195821303}
+  m_RootOrder: 4
+  m_LocalEulerAnglesHint: {x: 21.251001, y: -1.049, z: -80.623}
+--- !u!108 &970012832
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 970012830}
+  m_Enabled: 1
+  serializedVersion: 9
+  m_Type: 0
+  m_Color: {r: 0.34376112, g: 0.9716981, b: 0.7954449, a: 1}
+  m_Intensity: 16.5
+  m_Range: 18.2
+  m_SpotAngle: 35.3
+  m_InnerSpotAngle: 13.6
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 0
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.1
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 0
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!1 &1313996752
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1313996753}
+  - component: {fileID: 1313996754}
+  m_Layer: 0
+  m_Name: New Sprite
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1313996753
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1313996752}
+  m_LocalRotation: {x: 0.27059805, y: 0.65328157, z: 0.27059805, w: 0.6532815}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 1387304066}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 90.00001, z: 45}
+--- !u!212 &1313996754
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1313996752}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 0
+  m_ReflectionProbeUsage: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+  m_Sprite: {fileID: 21300000, guid: 718074e4e56a5404e824bf8e6571ea7d, type: 3}
+  m_Color: {r: 1, g: 0, b: 0, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!1 &1356057899
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1356057900}
+  - component: {fileID: 1356057902}
+  - component: {fileID: 1356057901}
+  m_Layer: 5
+  m_Name: Text SpriteLWRP
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1356057900
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1356057899}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2107709637}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.07350001, y: 0.18533847}
+  m_AnchorMax: {x: 0.6865, y: 0.26743004}
+  m_AnchoredPosition: {x: -0.1000061, y: -1}
+  m_SizeDelta: {x: 3.3999996, y: -4}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1356057901
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1356057899}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 0.6603774, g: 0.6603774, b: 0.6603774, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: Stretchyman's "Lightweight Render Pipeline/Spine/Sprite" shader is the lightweight
+    equivalent of the "Spine/Sprite/VertexLit" and "PixelLit" shaders.
+--- !u!222 &1356057902
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1356057899}
+  m_CullTransparentMesh: 0
+--- !u!1 &1387304064
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1387304066}
+  - component: {fileID: 1387304065}
+  - component: {fileID: 1387304067}
+  m_Layer: 0
+  m_Name: '[LIGHT] Rotating light'
+  m_TagString: Untagged
+  m_Icon: {fileID: 5132851093641282708, guid: 0000000000000000d000000000000000, type: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!108 &1387304065
+Light:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1387304064}
+  m_Enabled: 1
+  serializedVersion: 9
+  m_Type: 1
+  m_Color: {r: 1, g: 0.14482759, b: 0, a: 1}
+  m_Intensity: 1.96
+  m_Range: 10
+  m_SpotAngle: 30
+  m_InnerSpotAngle: 21.80208
+  m_CookieSize: 10
+  m_Shadows:
+    m_Type: 0
+    m_Resolution: -1
+    m_CustomResolution: -1
+    m_Strength: 1
+    m_Bias: 0.05
+    m_NormalBias: 0.4
+    m_NearPlane: 0.2
+    m_CullingMatrixOverride:
+      e00: 1
+      e01: 0
+      e02: 0
+      e03: 0
+      e10: 0
+      e11: 1
+      e12: 0
+      e13: 0
+      e20: 0
+      e21: 0
+      e22: 1
+      e23: 0
+      e30: 0
+      e31: 0
+      e32: 0
+      e33: 1
+    m_UseCullingMatrixOverride: 0
+  m_Cookie: {fileID: 0}
+  m_DrawHalo: 0
+  m_Flare: {fileID: 0}
+  m_RenderMode: 0
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingLayerMask: 1
+  m_Lightmapping: 4
+  m_LightShadowCasterMode: 0
+  m_AreaSize: {x: 1, y: 1}
+  m_BounceIntensity: 1
+  m_ColorTemperature: 6570
+  m_UseColorTemperature: 0
+  m_BoundingSphereOverride: {x: 0, y: 0, z: 0, w: 0}
+  m_UseBoundingSphereOverride: 0
+  m_ShadowRadius: 0
+  m_ShadowAngle: 0
+--- !u!4 &1387304066
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1387304064}
+  m_LocalRotation: {x: -0.7059173, y: -0.04099956, z: 0.705917, w: -0.04099958}
+  m_LocalPosition: {x: 0.077, y: 3.594, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children:
+  - {fileID: 1313996753}
+  - {fileID: 1443231423}
+  m_Father: {fileID: 195821303}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: -186.648, y: 89.99999, z: 0}
+--- !u!114 &1387304067
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1387304064}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: 12e291cb54756d04c9dd53ad6e00a126, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  direction: {x: 1, y: 0, z: 0}
+  speed: 1.5
+--- !u!1 &1389528812
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1389528816}
+  - component: {fileID: 1389528815}
+  - component: {fileID: 1389528814}
+  - component: {fileID: 1389528813}
+  m_Layer: 0
+  m_Name: raptor
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1389528813
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1389528812}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 83b868dae6d9ae34397e35d6f29e926b, type: 2}
+  initialSkinName: 
+  initialFlipX: 1
+  initialFlipY: 0
+  separatorSlotNames: []
+  zSpacing: 0
+  useClipping: 1
+  immutableTriangles: 0
+  pmaVertexColors: 1
+  clearStateOnDisable: 0
+  tintBlack: 0
+  singleSubmesh: 0
+  addNormals: 0
+  calculateTangents: 0
+  maskInteraction: 0
+  maskMaterials:
+    materialsMaskDisabled: []
+    materialsInsideMask: []
+    materialsOutsideMask: []
+  disableRenderingOnOverride: 1
+  _animationName: roar
+  loop: 1
+  timeScale: 1
+--- !u!23 &1389528814
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1389528812}
+  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: 501778ed9798a664b909ce819e493a6f, 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: 1
+  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!33 &1389528815
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1389528812}
+  m_Mesh: {fileID: 0}
+--- !u!4 &1389528816
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1389528812}
+  m_LocalRotation: {x: -0, y: -0.12262274, z: -0, w: 0.9924534}
+  m_LocalPosition: {x: 6.72, y: -4.17, z: -3.32}
+  m_LocalScale: {x: 0.62727, y: 0.62727, z: 0.62727}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 3
+  m_LocalEulerAnglesHint: {x: 0, y: -14.087001, z: 0}
+--- !u!1 &1443231422
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1443231423}
+  - component: {fileID: 1443231424}
+  m_Layer: 0
+  m_Name: New Sprite (1)
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!4 &1443231423
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1443231422}
+  m_LocalRotation: {x: 0, y: 0.7071068, z: 0, w: 0.70710677}
+  m_LocalPosition: {x: 0, y: 0.015, z: -0.234}
+  m_LocalScale: {x: 1.5390148, y: 1.5390143, z: 1.5390143}
+  m_Children: []
+  m_Father: {fileID: 1387304066}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 90.00001, z: 0}
+--- !u!212 &1443231424
+SpriteRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1443231422}
+  m_Enabled: 1
+  m_CastShadows: 0
+  m_ReceiveShadows: 0
+  m_DynamicOccludee: 1
+  m_MotionVectors: 1
+  m_LightProbeUsage: 0
+  m_ReflectionProbeUsage: 0
+  m_RenderingLayerMask: 1
+  m_RendererPriority: 0
+  m_Materials:
+  - {fileID: 10754, guid: 0000000000000000f000000000000000, type: 0}
+  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: 1
+  m_SelectedEditorRenderState: 0
+  m_MinimumChartSize: 4
+  m_AutoUVMaxDistance: 0.5
+  m_AutoUVMaxAngle: 89
+  m_LightmapParameters: {fileID: 0}
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 7
+  m_Sprite: {fileID: 21300000, guid: 718074e4e56a5404e824bf8e6571ea7d, type: 3}
+  m_Color: {r: 0, g: 0, b: 0, a: 1}
+  m_FlipX: 0
+  m_FlipY: 0
+  m_DrawMode: 0
+  m_Size: {x: 1, y: 1}
+  m_AdaptiveModeThreshold: 0.5
+  m_SpriteTileMode: 0
+  m_WasSpriteAssigned: 1
+  m_MaskInteraction: 0
+  m_SpriteSortPoint: 0
+--- !u!1 &1537129159
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1537129162}
+  - component: {fileID: 1537129161}
+  - component: {fileID: 1537129160}
+  m_Layer: 0
+  m_Name: EventSystem
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1537129160
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1537129159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1077351063, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_HorizontalAxis: Horizontal
+  m_VerticalAxis: Vertical
+  m_SubmitButton: Submit
+  m_CancelButton: Cancel
+  m_InputActionsPerSecond: 10
+  m_RepeatDelay: 0.5
+  m_ForceModuleActive: 0
+--- !u!114 &1537129161
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1537129159}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: -619905303, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_FirstSelected: {fileID: 0}
+  m_sendNavigationEvents: 1
+  m_DragThreshold: 5
+--- !u!4 &1537129162
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1537129159}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 7
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1628453470
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1628453474}
+  - component: {fileID: 1628453473}
+  - component: {fileID: 1628453472}
+  - component: {fileID: 1628453471}
+  - component: {fileID: 1628453475}
+  m_Layer: 0
+  m_Name: stretchyman animated
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &1628453471
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1628453470}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 11500000, guid: d247ba06193faa74d9335f5481b2b56c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  skeletonDataAsset: {fileID: 11400000, guid: 4e2ecc2a9b955f343964c702e58dcb53, type: 2}
+  initialSkinName: default
+  initialFlipX: 0
+  initialFlipY: 0
+  separatorSlotNames: []
+  zSpacing: 0
+  useClipping: 1
+  immutableTriangles: 0
+  pmaVertexColors: 1
+  clearStateOnDisable: 0
+  tintBlack: 0
+  singleSubmesh: 0
+  addNormals: 0
+  calculateTangents: 1
+  maskInteraction: 0
+  maskMaterials:
+    materialsMaskDisabled: []
+    materialsInsideMask: []
+    materialsOutsideMask: []
+  disableRenderingOnOverride: 1
+  _animationName: sneak
+  loop: 1
+  timeScale: 0.25
+--- !u!23 &1628453472
+MeshRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1628453470}
+  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: 7ee25f95c3010c741aa55289d41e9b7d, 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: 1
+  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!33 &1628453473
+MeshFilter:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1628453470}
+  m_Mesh: {fileID: 0}
+--- !u!4 &1628453474
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1628453470}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: -6.47, y: -3.59, z: -1}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 1
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!210 &1628453475
+SortingGroup:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1628453470}
+  m_Enabled: 1
+  m_SortingLayerID: 0
+  m_SortingLayer: 0
+  m_SortingOrder: 0
+--- !u!1 &1667748200
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1667748205}
+  - component: {fileID: 1667748204}
+  - component: {fileID: 1667748203}
+  - component: {fileID: 1667748202}
+  - component: {fileID: 1667748201}
+  m_Layer: 0
+  m_Name: Main Camera
+  m_TagString: MainCamera
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!81 &1667748201
+AudioListener:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1667748200}
+  m_Enabled: 1
+--- !u!124 &1667748202
+Behaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1667748200}
+  m_Enabled: 1
+--- !u!92 &1667748203
+Behaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1667748200}
+  m_Enabled: 1
+--- !u!20 &1667748204
+Camera:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1667748200}
+  m_Enabled: 1
+  serializedVersion: 2
+  m_ClearFlags: 1
+  m_BackGroundColor: {r: 0.029411793, g: 0.028979266, b: 0.028979266, a: 0}
+  m_projectionMatrixMode: 1
+  m_GateFitMode: 2
+  m_FOVAxisMode: 0
+  m_SensorSize: {x: 36, y: 24}
+  m_LensShift: {x: 0, y: 0}
+  m_FocalLength: 50
+  m_NormalizedViewPortRect:
+    serializedVersion: 2
+    x: 0
+    y: 0
+    width: 1
+    height: 1
+  near clip plane: 0.3
+  far clip plane: 1000
+  field of view: 60
+  orthographic: 1
+  orthographic size: 5
+  m_Depth: -1
+  m_CullingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+  m_RenderingPath: -1
+  m_TargetTexture: {fileID: 0}
+  m_TargetDisplay: 0
+  m_TargetEye: 3
+  m_HDR: 0
+  m_AllowMSAA: 1
+  m_AllowDynamicResolution: 0
+  m_ForceIntoRT: 0
+  m_OcclusionCulling: 1
+  m_StereoConvergence: 10
+  m_StereoSeparation: 0.022
+--- !u!4 &1667748205
+Transform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1667748200}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: -10}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 0}
+  m_RootOrder: 0
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+--- !u!1 &1975175688
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 1975175689}
+  - component: {fileID: 1975175691}
+  - component: {fileID: 1975175690}
+  m_Layer: 5
+  m_Name: Text LWRP
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!224 &1975175689
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1975175688}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 1, y: 1, z: 1}
+  m_Children: []
+  m_Father: {fileID: 2107709637}
+  m_RootOrder: 2
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0.24350001, y: 0}
+  m_AnchorMax: {x: 0.83025014, y: 0.112}
+  m_AnchoredPosition: {x: -1.269989, y: -4}
+  m_SizeDelta: {x: -1.5, y: 6}
+  m_Pivot: {x: 0.5, y: 0.5}
+--- !u!114 &1975175690
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1975175688}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 708705254, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_Material: {fileID: 0}
+  m_Color: {r: 1, g: 1, b: 1, a: 1}
+  m_RaycastTarget: 1
+  m_OnCullStateChanged:
+    m_PersistentCalls:
+      m_Calls: []
+    m_TypeName: UnityEngine.UI.MaskableGraphic+CullStateChangedEvent, UnityEngine.UI,
+      Version=1.0.0.0, Culture=neutral, PublicKeyToken=null
+  m_FontData:
+    m_Font: {fileID: 10102, guid: 0000000000000000e000000000000000, type: 0}
+    m_FontSize: 14
+    m_FontStyle: 0
+    m_BestFit: 0
+    m_MinSize: 10
+    m_MaxSize: 40
+    m_Alignment: 0
+    m_AlignByGeometry: 0
+    m_RichText: 1
+    m_HorizontalOverflow: 0
+    m_VerticalOverflow: 0
+    m_LineSpacing: 1
+  m_Text: 'All "Lightweight Render Pipeline/Spine" shaders respect global lighting
+    settings defined by the LightweightRenderPipelineAsset
+
+    (see Project Settings->Graphics->Scriptable Render Pipeline Settings).'
+--- !u!222 &1975175691
+CanvasRenderer:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 1975175688}
+  m_CullTransparentMesh: 0
+--- !u!1 &2107709633
+GameObject:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  serializedVersion: 6
+  m_Component:
+  - component: {fileID: 2107709637}
+  - component: {fileID: 2107709636}
+  - component: {fileID: 2107709635}
+  - component: {fileID: 2107709634}
+  m_Layer: 5
+  m_Name: Canvas
+  m_TagString: Untagged
+  m_Icon: {fileID: 0}
+  m_NavMeshLayer: 0
+  m_StaticEditorFlags: 0
+  m_IsActive: 1
+--- !u!114 &2107709634
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1301386320, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_IgnoreReversedGraphics: 1
+  m_BlockingObjects: 0
+  m_BlockingMask:
+    serializedVersion: 2
+    m_Bits: 4294967295
+--- !u!114 &2107709635
+MonoBehaviour:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_Enabled: 1
+  m_EditorHideFlags: 0
+  m_Script: {fileID: 1980459831, guid: f70555f144d8491a825f0804e09c671c, type: 3}
+  m_Name: 
+  m_EditorClassIdentifier: 
+  m_UiScaleMode: 1
+  m_ReferencePixelsPerUnit: 100
+  m_ScaleFactor: 1
+  m_ReferenceResolution: {x: 800, y: 600}
+  m_ScreenMatchMode: 0
+  m_MatchWidthOrHeight: 0
+  m_PhysicalUnit: 3
+  m_FallbackScreenDPI: 96
+  m_DefaultSpriteDPI: 96
+  m_DynamicPixelsPerUnit: 1
+--- !u!223 &2107709636
+Canvas:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_Enabled: 1
+  serializedVersion: 3
+  m_RenderMode: 0
+  m_Camera: {fileID: 0}
+  m_PlaneDistance: 100
+  m_PixelPerfect: 0
+  m_ReceivesEvents: 1
+  m_OverrideSorting: 0
+  m_OverridePixelPerfect: 0
+  m_SortingBucketNormalizedSize: 0
+  m_AdditionalShaderChannelsFlag: 0
+  m_SortingLayerID: 0
+  m_SortingOrder: 0
+  m_TargetDisplay: 0
+--- !u!224 &2107709637
+RectTransform:
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_GameObject: {fileID: 2107709633}
+  m_LocalRotation: {x: 0, y: 0, z: 0, w: 1}
+  m_LocalPosition: {x: 0, y: 0, z: 0}
+  m_LocalScale: {x: 0, y: 0, z: 0}
+  m_Children:
+  - {fileID: 739509038}
+  - {fileID: 1356057900}
+  - {fileID: 1975175689}
+  - {fileID: 394849623}
+  m_Father: {fileID: 0}
+  m_RootOrder: 6
+  m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0}
+  m_AnchorMin: {x: 0, y: 0}
+  m_AnchorMax: {x: 0, y: 0}
+  m_AnchoredPosition: {x: 0, y: 0}
+  m_SizeDelta: {x: 0, y: 0}
+  m_Pivot: {x: 0, y: 0}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Examples/LWRP Shaders.unity.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7bb1acf275841dd4d85e39c168d08cdf
+timeCreated: 1479531945
+licenseType: Free
+DefaultImporter:
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 26 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/LICENSE.md

@@ -0,0 +1,26 @@
+# Spine Runtimes License Agreement
+Last updated May 1, 2019. Replaces all prior versions.
+
+Copyright (c) 2013-2019, Esoteric Software LLC
+
+Integration of the Spine Runtimes into software or otherwise creating
+derivative works of the Spine Runtimes is permitted under the terms and
+conditions of Section 2 of the Spine Editor License Agreement:
+http://esotericsoftware.com/spine-editor-license
+
+Otherwise, it is permitted to integrate the Spine Runtimes into software
+or otherwise create derivative works of the Spine Runtimes (collectively,
+"Products"), provided that each user of the Products must obtain their own
+Spine Editor license and redistribution of the Products in any form must
+include this license and copyright notice.
+
+THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY EXPRESS
+OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
+OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN
+NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY DIRECT, INDIRECT,
+INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, BUSINESS
+INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND ON ANY
+THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
+NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
+EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

+ 7 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/LICENSE.md.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 09eeff36e2b574446a04336904abbe04
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: da24c0c782c02ef4d9b3ae62e6c7891d
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: bb2ec1d147af7ed41a90761d9fa2866c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 37 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Common-ShadowCasterPass-LW.hlsl

@@ -0,0 +1,37 @@
+#ifndef COMMON_SHADOW_CASTER_PASS_LW_INCLUDED
+#define COMMON_SHADOW_CASTER_PASS_LW_INCLUDED
+
+#include "SpineCoreShaders/ShaderShared.cginc"
+
+struct AttributesSpine
+{
+	float4 positionOS   : POSITION;
+	float3 normalOS     : NORMAL;
+	float4 vertexColor : COLOR;
+	float2 texcoord     : TEXCOORD0;
+	UNITY_VERTEX_INPUT_INSTANCE_ID
+};
+
+struct VaryingsSpine
+{
+	float4 positionCS   : SV_POSITION;
+	float4 texcoordAndAlpha: TEXCOORD0;
+};
+
+float4 GetShadowPositionHClip(AttributesSpine input)
+{
+	float3 positionWS = TransformObjectToWorld(input.positionOS.xyz);
+	float3 normalWS = TransformObjectToWorldNormal(input.normalOS);
+
+	float4 positionCS = TransformWorldToHClip(ApplyShadowBias(positionWS, normalWS, _LightDirection));
+
+#if UNITY_REVERSED_Z
+	positionCS.z = min(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE);
+#else
+	positionCS.z = max(positionCS.z, positionCS.w * UNITY_NEAR_CLIP_VALUE);
+#endif
+
+	return positionCS;
+}
+
+#endif

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Common-ShadowCasterPass-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 6fcd9fbd32d3cc9479ee4efcb876bd98
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 42 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-DepthOnlyPass-LW.hlsl

@@ -0,0 +1,42 @@
+#ifndef SPRITES_DEPTH_ONLY_PASS_LW_INCLUDED
+#define SPRITES_DEPTH_ONLY_PASS_LW_INCLUDED
+
+#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
+#include "SpineCoreShaders/ShaderShared.cginc"
+
+struct AttributesSprite
+{
+	float4 positionOS   : POSITION;
+	float4 vertexColor : COLOR;
+	float2 texcoord     : TEXCOORD0;
+	UNITY_VERTEX_INPUT_INSTANCE_ID
+};
+
+struct VaryingsSprite
+{
+	float4 positionCS   : SV_POSITION;
+	float4 texcoordAndAlpha: TEXCOORD0;
+	UNITY_VERTEX_INPUT_INSTANCE_ID
+	UNITY_VERTEX_OUTPUT_STEREO
+};
+
+VaryingsSprite DepthOnlyVertexSprite(AttributesSprite input)
+{
+	VaryingsSprite output = (VaryingsSprite)0;
+	UNITY_SETUP_INSTANCE_ID(input);
+	UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
+
+	output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0);
+	output.texcoordAndAlpha.a = input.vertexColor.a * _Color.a;
+	output.positionCS = TransformObjectToHClip(input.positionOS.xyz);
+	return output;
+}
+
+half4 DepthOnlyFragmentSprite(VaryingsSprite input) : SV_TARGET
+{
+	fixed4 texureColor = calculateTexturePixel(input.texcoordAndAlpha.xy);
+	clip(texureColor.a * input.texcoordAndAlpha.a - _Cutoff);
+	return 0;
+}
+
+#endif

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-DepthOnlyPass-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 62f5598eb40b49f44b4394d675da8472
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 48 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Input-LW.hlsl

@@ -0,0 +1,48 @@
+#ifndef LIGHTWEIGHT_LIT_INPUT_INCLUDED
+#define LIGHTWEIGHT_LIT_INPUT_INCLUDED
+
+////////////////////////////////////////
+// Defines
+//
+#undef LIGHTMAP_ON
+
+#if defined(_SPECULAR) || defined(_SPECULAR_GLOSSMAP)
+#define SPECULAR
+#endif
+
+//Have to process lighting per pixel if using normal maps or a diffuse ramp or rim lighting or specular
+#if defined(_NORMALMAP) || defined(_DIFFUSE_RAMP) || defined(_RIM_LIGHTING) || defined(SPECULAR)
+#define PER_PIXEL_LIGHTING
+#endif
+
+#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
+#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl"
+#include "SpineCoreShaders/ShaderShared.cginc"
+
+#if defined(SPECULAR)
+
+CBUFFER_START(UnityPerMaterial)
+half _Metallic;
+half _Glossiness;
+half _GlossMapScale;
+CBUFFER_END
+
+sampler2D _MetallicGlossMap;
+
+inline half2 getMetallicGloss(float2 uv)
+{
+	half2 mg;
+
+#ifdef _SPECULAR_GLOSSMAP
+	mg = tex2D(_MetallicGlossMap, uv).ra;
+	mg.g *= _GlossMapScale;
+#else
+	mg.r = _Metallic;
+	mg.g = _Glossiness;
+#endif
+
+	return mg;
+}
+#endif
+
+#endif // LIGHTWEIGHT_INPUT_SURFACE_PBR_INCLUDED

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Input-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: f4e2f096b2fbf094097454382c73c816
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 76 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ForwardPass-LW.hlsl

@@ -0,0 +1,76 @@
+#ifndef SKELETONLIT_FORWARD_PASS_LW_INCLUDED
+#define SKELETONLIT_FORWARD_PASS_LW_INCLUDED
+
+struct appdata {
+	float3 pos : POSITION;
+	float3 normal : NORMAL;
+	half4 color : COLOR;
+	float2 uv0 : TEXCOORD0;
+	
+	UNITY_VERTEX_INPUT_INSTANCE_ID
+};
+
+struct VertexOutput {
+	half4 color : COLOR0;
+	float2 uv0 : TEXCOORD0;
+	float4 pos : SV_POSITION;
+	UNITY_VERTEX_OUTPUT_STEREO
+};
+
+half3 LightweightLightVertexSimplified(float3 positionWS, half3 normalWS) {
+	Light mainLight = GetMainLight();
+
+	half3 attenuatedLightColor = mainLight.color * (mainLight.distanceAttenuation * mainLight.shadowAttenuation);
+	half3 diffuseLightColor = LightingLambert(attenuatedLightColor, mainLight.direction, normalWS);
+
+	// Note: we don't add any lighting in the fragment shader, thus we include both variants below
+#if defined(_ADDITIONAL_LIGHTS) || defined(_ADDITIONAL_LIGHTS_VERTEX)
+	for (int i = 0; i < GetAdditionalLightsCount(); ++i)
+	{
+		Light light = GetAdditionalLight(i, positionWS);
+		half3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation);
+		diffuseLightColor += LightingLambert(attenuatedLightColor, light.direction, normalWS);
+	}
+#endif
+	return diffuseLightColor;
+}
+
+VertexOutput vert(appdata v) {
+	VertexOutput o;
+	UNITY_SETUP_INSTANCE_ID(v);
+	UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o);
+
+	half4 color = v.color;
+	float3 positionWS = TransformObjectToWorld(v.pos);
+	half3 fixedNormal = half3(0, 0, -1);
+	half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal));
+	color.rgb = LightweightLightVertexSimplified(positionWS, normalWS);
+
+	// Note: ambient light is also handled via SH.
+	half3 vertexSH;
+	OUTPUT_SH(normalWS.xyz, vertexSH);
+	color.rgb += SAMPLE_GI(input.lightmapUV, vertexSH, normalWS);
+
+	o.color = color;
+	o.uv0 = v.uv0;
+	o.pos = TransformWorldToHClip(positionWS);
+	return o;
+}
+
+sampler2D _MainTex;
+
+half4 frag(VertexOutput i) : SV_Target{
+	half4 tex = tex2D(_MainTex, i.uv0);
+	half4 col;
+
+	#if defined(_STRAIGHT_ALPHA_INPUT)
+	col.rgb = tex.rgb * i.color.rgb * tex.a;
+	#else
+	col.rgb = tex.rgb * i.color.rgb;
+	#endif
+
+	col.a = tex.a * i.color.a;
+	return col;
+}
+
+#endif

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ForwardPass-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 60e3412410cd14646a1dfd86d9775cb4
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 24 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ShadowCasterPass-LW.hlsl

@@ -0,0 +1,24 @@
+#ifndef SKELETONLIT_SHADOW_CASTER_PASS_LW_INCLUDED
+#define SKELETONLIT_SHADOW_CASTER_PASS_LW_INCLUDED
+
+#include "Spine-Common-ShadowCasterPass-LW.hlsl"
+
+VaryingsSpine ShadowPassVertexSkeletonLit(AttributesSpine input)
+{
+	VaryingsSpine output;
+	UNITY_SETUP_INSTANCE_ID(input);
+
+	output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0);
+	output.positionCS = GetShadowPositionHClip(input);
+	output.texcoordAndAlpha.a = input.vertexColor.a;
+	return output;
+}
+
+half4 ShadowPassFragmentSkeletonLit(VaryingsSpine input) : SV_TARGET
+{
+	fixed4 texureColor = calculateTexturePixel(input.texcoordAndAlpha.xy);
+	clip(texureColor.a * input.texcoordAndAlpha.a - _Cutoff);
+	return 0;
+}
+
+#endif

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-SkeletonLit-ShadowCasterPass-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 73bd9b77edd0d794ca8fde763e80a145
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 267 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ForwardPass-LW.hlsl

@@ -0,0 +1,267 @@
+#ifndef VERTEX_LIT_FORWARD_PASS_LW_INCLUDED
+#define VERTEX_LIT_FORWARD_PASS_LW_INCLUDED
+
+#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Lighting.hlsl"
+
+#include "SpineCoreShaders/SpriteLighting.cginc"
+
+////////////////////////////////////////
+// Vertex output struct
+//
+struct VertexOutputLWRP
+{
+	float4 pos : SV_POSITION;
+	fixed4 vertexColor : COLOR;
+	float3 texcoord : TEXCOORD0;
+
+	half4 fogFactorAndVertexLight : TEXCOORD1;
+	half3 viewDirectionWS : TEXCOORD2;
+
+	DECLARE_LIGHTMAP_OR_SH(lightmapUV, vertexSH, 3);
+
+#if defined(_NORMALMAP)
+	half4 normalWorld : TEXCOORD4;
+	half4 tangentWorld : TEXCOORD5;
+	half4 binormalWorld : TEXCOORD6;
+#else
+	half3 normalWorld : TEXCOORD4;
+#endif
+#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
+	float4 shadowCoord : TEXCOORD7;
+#endif
+#if defined(_RIM_LIGHTING) || defined(_ADDITIONAL_LIGHTS)
+	float4 positionWS : TEXCOORD8;
+#endif
+	UNITY_VERTEX_OUTPUT_STEREO
+};
+
+///////////////////////////////////////////////////////////////////////////////
+//                  Vertex and Fragment functions                            //
+///////////////////////////////////////////////////////////////////////////////
+half3 LightweightLightVertexSimplified(float3 positionWS, half3 normalWS) {
+#ifdef _MAIN_LIGHT_VERTEX
+	Light mainLight = GetMainLight();
+	half3 attenuatedLightColor = mainLight.color * (mainLight.distanceAttenuation * mainLight.shadowAttenuation);
+	half3 diffuseLightColor = LightingLambert(attenuatedLightColor, mainLight.direction, normalWS);
+#else
+	half3 diffuseLightColor = half3(0, 0, 0);
+#endif
+
+#ifdef _ADDITIONAL_LIGHTS_VERTEX
+	int pixelLightCount = GetAdditionalLightsCount();
+	for (int i = 0; i < pixelLightCount; ++i)
+	{
+		Light light = GetAdditionalLight(i, positionWS);
+		half3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation);
+		diffuseLightColor += LightingLambert(attenuatedLightColor, light.direction, normalWS);
+	}
+#endif // _ADDITIONAL_LIGHTS_VERTEX
+	return diffuseLightColor;
+}
+
+#ifdef _DIFFUSE_RAMP
+half3 LightingLambertRamped(half3 lightColor, float attenuation, half3 lightDir, half3 normal)
+{
+	half angleDot = max(0, dot(lightDir, normal));
+	return calculateRampedDiffuse(lightColor, attenuation, angleDot);
+}
+#endif
+
+#if defined(SPECULAR)
+
+half4 LightweightFragmentPBRSimplified(InputData inputData, half4 texAlbedoAlpha, half metallic, half3 specular,
+	half smoothness, half3 emission, half4 vertexColor)
+{
+	half4 albedo = texAlbedoAlpha * vertexColor;
+
+	BRDFData brdfData;
+	half ignoredAlpha = 1; // ignore alpha, otherwise 
+	InitializeBRDFData(albedo.rgb, metallic, specular, smoothness, ignoredAlpha, brdfData);
+	brdfData.specular *= albedo.a;
+
+#ifndef _MAIN_LIGHT_VERTEX
+#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
+	Light mainLight = GetMainLight(inputData.shadowCoord);
+#else
+	Light mainLight = GetMainLight();
+#endif
+
+	half3 finalColor = inputData.bakedGI;
+	finalColor += LightingPhysicallyBased(brdfData, mainLight, inputData.normalWS, inputData.viewDirectionWS);
+#else // _MAIN_LIGHT_VERTEX
+	half3 finalColor = inputData.bakedGI;
+#endif // _MAIN_LIGHT_VERTEX
+
+#ifdef _ADDITIONAL_LIGHTS
+	int pixelLightCount = GetAdditionalLightsCount();
+	for (int i = 0; i < pixelLightCount; ++i)
+	{
+		Light light = GetAdditionalLight(i, inputData.positionWS);
+		finalColor += LightingPhysicallyBased(brdfData, light, inputData.normalWS, inputData.viewDirectionWS);
+	}
+#endif
+
+#ifdef _ADDITIONAL_LIGHTS_VERTEX
+	finalColor += inputData.vertexLighting * brdfData.diffuse;
+#endif
+	finalColor += emission;
+	return prepareLitPixelForOutput(half4(finalColor, texAlbedoAlpha.a), vertexColor);
+}
+
+#else // !SPECULAR
+
+half4 LightweightFragmentBlinnPhongSimplified(InputData inputData, half4 texDiffuseAlpha, half3 emission, half4 vertexColor)
+{
+	half4 diffuse = texDiffuseAlpha * vertexColor;
+
+#ifndef _MAIN_LIGHT_VERTEX
+#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
+	Light mainLight = GetMainLight(inputData.shadowCoord);
+#else
+	Light mainLight = GetMainLight();
+#endif
+	half3 diffuseLighting = inputData.bakedGI;
+
+	half3 attenuation = mainLight.distanceAttenuation * mainLight.shadowAttenuation;
+	half3 attenuatedLightColor = mainLight.color * attenuation;
+#ifndef _DIFFUSE_RAMP
+	diffuseLighting += LightingLambert(attenuatedLightColor, mainLight.direction, inputData.normalWS);
+#else
+	diffuseLighting += LightingLambertRamped(mainLight.color, attenuation, mainLight.direction, inputData.normalWS);
+#endif
+#else // _MAIN_LIGHT_VERTEX
+	half3 diffuseLighting = inputData.bakedGI;
+#endif // _MAIN_LIGHT_VERTEX
+
+#ifdef _ADDITIONAL_LIGHTS
+	int pixelLightCount = GetAdditionalLightsCount();
+	for (int i = 0; i < pixelLightCount; ++i)
+	{
+		Light light = GetAdditionalLight(i, inputData.positionWS);
+		half3 attenuatedLightColor = light.color * (light.distanceAttenuation * light.shadowAttenuation);
+		diffuseLighting += LightingLambert(attenuatedLightColor, light.direction, inputData.normalWS);
+	}
+#endif
+#ifdef _ADDITIONAL_LIGHTS_VERTEX
+	diffuseLighting += inputData.vertexLighting;
+#endif
+	diffuseLighting += emission;
+	//half3 finalColor = diffuseLighting * diffuse + emission;
+	half3 finalColor = diffuseLighting * diffuse.rgb;
+	return prepareLitPixelForOutput(half4(finalColor, texDiffuseAlpha.a), vertexColor);
+}
+#endif // SPECULAR
+
+VertexOutputLWRP ForwardPassVertexSprite(VertexInput input)
+{
+	VertexOutputLWRP output = (VertexOutputLWRP)0;
+
+	UNITY_SETUP_INSTANCE_ID(input);
+	UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output);
+
+	output.pos = calculateLocalPos(input.vertex);
+	output.vertexColor = calculateVertexColor(input.color);
+	output.texcoord = float3(calculateTextureCoord(input.texcoord), 0);
+
+	float3 positionWS = TransformObjectToWorld(input.vertex.xyz);
+
+	float backFaceSign = 1;
+#if defined(FIXED_NORMALS_BACKFACE_RENDERING)
+	backFaceSign = calculateBackfacingSign(positionWS.xyz);
+#endif	
+	output.viewDirectionWS = GetCameraPositionWS() - positionWS;
+
+#if defined(PER_PIXEL_LIGHTING)
+
+#if defined(_RIM_LIGHTING) || defined(_ADDITIONAL_LIGHTS)
+	output.positionWS = float4(positionWS, 1);
+#endif
+	half3 normalWS = calculateSpriteWorldNormal(input, -backFaceSign);
+	output.normalWorld.xyz = normalWS;
+
+#if defined(_NORMALMAP)
+	output.tangentWorld.xyz = calculateWorldTangent(input.tangent);
+	output.binormalWorld.xyz = calculateSpriteWorldBinormal(input, output.normalWorld.xyz, output.tangentWorld.xyz, backFaceSign);
+#endif
+
+#else // !PER_PIXEL_LIGHTING
+	half3 fixedNormal = half3(0, 0, -1);
+	half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal));
+
+#endif // !PER_PIXEL_LIGHTING
+	output.fogFactorAndVertexLight.yzw = LightweightLightVertexSimplified(positionWS, normalWS);
+
+#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
+	VertexPositionInputs vertexInput;
+	vertexInput.positionWS = positionWS;
+	vertexInput.positionCS = output.pos;
+	output.shadowCoord = GetShadowCoord(vertexInput);
+#endif
+
+#if defined(_FOG)
+	half fogFactor = ComputeFogFactor(output.pos.z);
+	output.fogFactorAndVertexLight.x = fogFactor;
+#endif
+
+	OUTPUT_SH(normalWS.xyz, output.vertexSH);
+	return output;
+}
+
+half4 ForwardPassFragmentSprite(VertexOutputLWRP input) : SV_Target
+{
+	UNITY_SETUP_STEREO_EYE_INDEX_POST_VERTEX(input);
+
+	fixed4 texureColor = calculateTexturePixel(input.texcoord.xy);
+	ALPHA_CLIP(texureColor, input.vertexColor)
+
+	// fill out InputData struct
+	InputData inputData;
+#if defined(_MAIN_LIGHT_SHADOWS) && !defined(_RECEIVE_SHADOWS_OFF)
+	inputData.shadowCoord = input.shadowCoord;
+#endif
+	
+	inputData.viewDirectionWS = input.viewDirectionWS;
+	inputData.vertexLighting = input.fogFactorAndVertexLight.yzw;
+
+#if defined(PER_PIXEL_LIGHTING)
+	#if defined(_NORMALMAP)
+	half3 normalWS = calculateNormalFromBumpMap(input.texcoord.xy, input.tangentWorld.xyz, input.binormalWorld.xyz, input.normalWorld.xyz);
+	#else
+	half3 normalWS = input.normalWorld.xyz;
+	#endif
+#else // !PER_PIXEL_LIGHTING
+	half3 fixedNormal = half3(0, 0, -1);
+	half3 normalWS = normalize(mul((float3x3)unity_ObjectToWorld, fixedNormal));
+#endif // !PER_PIXEL_LIGHTING
+
+	inputData.normalWS = normalWS;
+	inputData.bakedGI = SAMPLE_GI(input.lightmapUV, input.vertexSH, inputData.normalWS);
+#if defined(_RIM_LIGHTING) || defined(_ADDITIONAL_LIGHTS)
+	inputData.positionWS = input.positionWS.rgb;
+#endif
+	
+#if defined(SPECULAR)
+	half2 metallicGloss = getMetallicGloss(input.texcoord.xy);
+	half metallic = metallicGloss.x;
+	half smoothness = metallicGloss.y; // this is 1 minus the square root of real roughness m.
+
+	half3 specular = half3(0, 0, 0);
+	half4 emission = half4(0, 0, 0, 1);
+	APPLY_EMISSION_SPECULAR(emission, input.texcoord.xy)
+	half4 pixel = LightweightFragmentPBRSimplified(inputData, texureColor, metallic, specular, smoothness, emission.rgb, input.vertexColor);
+#else
+	half3 emission = half3(0, 0, 0);
+	APPLY_EMISSION(emission, input.texcoord.xy)
+	half4 pixel = LightweightFragmentBlinnPhongSimplified(inputData, texureColor, emission, input.vertexColor);
+#endif
+
+#if defined(_RIM_LIGHTING)
+	pixel.rgb = applyRimLighting(input.positionWS.xyz, normalWS, pixel);
+#endif
+
+	COLORISE(pixel)
+	APPLY_FOG_LWRP(pixel, input.fogFactorAndVertexLight.x)
+	return pixel;
+}
+
+#endif

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ForwardPass-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: ddd0ba95f6acb1c47829c9a19237b684
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 27 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ShadowCasterPass-LW.hlsl

@@ -0,0 +1,27 @@
+#ifndef SPRITES_SHADOW_CASTER_PASS_LW_INCLUDED
+#define SPRITES_SHADOW_CASTER_PASS_LW_INCLUDED
+
+#include "Spine-Common-ShadowCasterPass-LW.hlsl"
+
+uniform fixed _ShadowAlphaCutoff;
+
+VaryingsSpine ShadowPassVertexSprite(AttributesSpine input)
+{
+	VaryingsSpine output;
+	UNITY_SETUP_INSTANCE_ID(input);
+
+	output.texcoordAndAlpha.xyz = float3(TRANSFORM_TEX(input.texcoord, _MainTex).xy, 0);
+	output.positionCS = GetShadowPositionHClip(input);
+	output.texcoordAndAlpha.a = input.vertexColor.a * _Color.a;
+	return output;
+}
+
+half4 ShadowPassFragmentSprite(VaryingsSpine input) : SV_TARGET
+{
+	fixed4 texureColor = calculateTexturePixel(input.texcoordAndAlpha.xy);
+	clip(texureColor.a * input.texcoordAndAlpha.a - _ShadowAlphaCutoff);
+
+	return 0;
+}
+
+#endif

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/Spine-Sprite-ShadowCasterPass-LW.hlsl.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 8330f220bb6d1f6409adc375e7ed71c1
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 0461a69371982a14eb98743d0cc25031
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/ShaderShared.cginc

@@ -0,0 +1,2 @@
+// Adapt this path accordingly if you have unpacked the Spine directory to another location.
+#include "Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderShared.cginc"

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/ShaderShared.cginc.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 665a6ae9755aded42a8316c0bdfebee6
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 2 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/SpriteLighting.cginc

@@ -0,0 +1,2 @@
+// Adapt this path accordingly if you have unpacked the Spine directory to another location.
+#include "Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpriteLighting.cginc"

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/CGIncludes/SpineCoreShaders/SpriteLighting.cginc.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 31f462b6ddedf4342b4a46b28ffdf90b
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 161 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-SkeletonLit-LW.shader

@@ -0,0 +1,161 @@
+// - forwardPass(Lightweight Vertex Lit) + ShadowCaster + DepthOnly
+// - Premultiplied Alpha Blending (Optional straight alpha input)
+// - Double-sided, no depth
+
+Shader "Lightweight Render Pipeline/Spine/Skeleton Lit" {
+	Properties {
+		_Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1
+		[NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {}
+		[Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
+		[HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
+		[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default
+	}
+
+	SubShader {
+		// Lightweight Pipeline tag is required. If Lightweight render pipeline is not set in the graphics settings
+		// this Subshader will fail.
+		Tags { "RenderPipeline" = "LightweightPipeline" "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" }
+		LOD 100
+		Cull Off
+		ZWrite Off
+		Blend One OneMinusSrcAlpha
+		
+		Stencil {
+			Ref[_StencilRef]
+			Comp[_StencilComp]
+			Pass Keep
+		}
+
+		Pass {
+			Name "ForwardLit"
+			Tags{"LightMode" = "LightweightForward"}
+
+			ZWrite Off
+			Cull Off
+			Blend One OneMinusSrcAlpha
+
+			HLSLPROGRAM
+			// Required to compile gles 2.0 with standard srp library
+			#pragma prefer_hlslcc gles
+			#pragma exclude_renderers d3d11_9x
+			#pragma target 2.0
+
+			// -------------------------------------
+			// Lightweight Pipeline keywords
+			#pragma multi_compile _ _MAIN_LIGHT_SHADOWS
+			#pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
+			#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
+			#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
+			#pragma multi_compile _ _SHADOWS_SOFT
+			#pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
+			
+			// -------------------------------------
+			// Unity defined keywords
+			#pragma multi_compile_fog
+
+			//--------------------------------------
+			// GPU Instancing
+			#pragma multi_compile_instancing
+
+			//--------------------------------------
+			// Spine related keywords
+			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma vertex vert
+			#pragma fragment frag
+			#pragma target 2.0
+
+			#undef LIGHTMAP_ON
+
+			#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
+			#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Lighting.hlsl"
+
+			#define USE_LWRP
+			#define fixed4 half4
+			#define fixed3 half3
+			#define fixed half
+			#include "CGIncludes/Spine-SkeletonLit-ForwardPass-LW.hlsl"
+			ENDHLSL
+	 	}
+
+		Pass
+		{
+			Name "ShadowCaster"
+			Tags{"LightMode" = "ShadowCaster"}
+
+			ZWrite On
+			ZTest LEqual
+			Cull Off
+
+			HLSLPROGRAM
+			// Required to compile gles 2.0 with standard srp library
+			#pragma prefer_hlslcc gles
+			#pragma exclude_renderers d3d11_9x
+			#pragma target 2.0
+
+			// -------------------------------------
+			// Material Keywords
+			#pragma shader_feature _ALPHATEST_ON
+
+			//--------------------------------------
+			// GPU Instancing
+			#pragma multi_compile_instancing
+			#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+
+			#pragma vertex ShadowPassVertexSkeletonLit
+			#pragma fragment ShadowPassFragmentSkeletonLit
+
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/LitInput.hlsl"
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/ShadowCasterPass.hlsl"
+
+			#define USE_LWRP
+			#define fixed4 half4
+			#define fixed3 half3
+			#define fixed half
+			#include "CGIncludes/Spine-Input-LW.hlsl"
+			#include "CGIncludes/Spine-SkeletonLit-ShadowCasterPass-LW.hlsl"
+
+			ENDHLSL
+		}
+
+		Pass
+		{
+			Name "DepthOnly"
+			Tags{"LightMode" = "DepthOnly"}
+
+			ZWrite On
+			ColorMask 0
+			Cull Off
+
+			HLSLPROGRAM
+			// Required to compile gles 2.0 with standard srp library
+			#pragma prefer_hlslcc gles
+			#pragma exclude_renderers d3d11_9x
+			#pragma target 2.0
+
+			#pragma vertex DepthOnlyVertexSprite
+			#pragma fragment DepthOnlyFragmentSprite
+
+			// -------------------------------------
+			// Material Keywords
+			#pragma shader_feature _ALPHATEST_ON
+			#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+
+			//--------------------------------------
+			// GPU Instancing
+			#pragma multi_compile_instancing
+
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/LitInput.hlsl"
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/DepthOnlyPass.hlsl"
+
+			#define USE_LWRP
+			#define fixed4 half4
+			#define fixed3 half3
+			#define fixed half
+			#include "CGIncludes/Spine-Input-LW.hlsl"
+			#include "CGIncludes/Spine-DepthOnlyPass-LW.hlsl"
+			ENDHLSL
+		}
+	}
+
+	FallBack "Hidden/InternalErrorShader"
+}

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-SkeletonLit-LW.shader.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 01105625afd026d4e989a24c4d70b8d6
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 222 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-Sprite-LW.shader

@@ -0,0 +1,222 @@
+Shader "Lightweight Render Pipeline/Spine/Sprite"
+{
+	Properties
+	{
+		_MainTex("Main Texture", 2D) = "white" {}
+		_Color("Color", Color) = (1,1,1,1)
+
+		_BumpScale("Scale", Float) = 1.0
+		_BumpMap("Normal Map", 2D) = "bump" {}
+
+		[MaterialToggle] PixelSnap("Pixel snap", Float) = 0
+		[PerRendererData] _AlphaTex("External Alpha", 2D) = "white" {} 
+		[PerRendererData] _EnableExternalAlpha("Enable External Alpha", Float) = 0
+
+		_EmissionColor("Color", Color) = (0,0,0,0)
+		_EmissionMap("Emission", 2D) = "white" {}
+		_EmissionPower("Emission Power", Float) = 2.0
+
+		_Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5
+		_GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0
+		[Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0
+		_MetallicGlossMap("Metallic", 2D) = "white" {}
+
+		_DiffuseRamp("Diffuse Ramp Texture", 2D) = "gray" {}
+
+		_FixedNormal("Fixed Normal", Vector) = (0,0,1,1)
+		_ZWrite("Depth Write", Float) = 0.0
+		_Cutoff("Depth alpha cutoff", Range(0,1)) = 0.0
+		_ShadowAlphaCutoff("Shadow alpha cutoff", Range(0,1)) = 0.1
+		_CustomRenderQueue("Custom Render Queue", Float) = 0.0
+
+		_OverlayColor("Overlay Color", Color) = (0,0,0,0)
+		_Hue("Hue", Range(-0.5,0.5)) = 0.0
+		_Saturation("Saturation", Range(0,2)) = 1.0
+		_Brightness("Brightness", Range(0,2)) = 1.0
+
+		_RimPower("Rim Power", Float) = 2.0
+		_RimColor("Rim Color", Color) = (1,1,1,1)
+
+		_BlendTex("Blend Texture", 2D) = "white" {}
+		_BlendAmount("Blend", Range(0,1)) = 0.0
+
+		[HideInInspector] _SrcBlend("__src", Float) = 1.0
+		[HideInInspector] _DstBlend("__dst", Float) = 0.0
+		[HideInInspector] _RenderQueue("__queue", Float) = 0.0
+		[HideInInspector] _Cull("__cull", Float) = 0.0
+		[HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0
+		[Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Compare", Float) = 0.0 // Disabled stencil test by default
+	}
+
+	SubShader
+	{
+		// Lightweight Pipeline tag is required. If Lightweight render pipeline is not set in the graphics settings
+		// this Subshader will fail.
+		Tags { "RenderPipeline"="LightweightPipeline" "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" }
+		LOD 150
+
+		Stencil {
+			Ref[_StencilRef]
+			Comp[_StencilComp]
+			Pass Keep
+		}
+
+		// ------------------------------------------------------------------
+		//  Forward pass.
+		Pass
+		{
+			// Lightmode matches the ShaderPassName set in LightweightRenderPipeline.cs. SRPDefaultUnlit and passes with
+			// no LightMode tag are also rendered by Lightweight Render Pipeline
+			Name "ForwardLit"
+			Tags{"LightMode" = "LightweightForward"}
+			Blend[_SrcBlend][_DstBlend]
+			ZWrite[_ZWrite]
+			Cull[_Cull]
+
+			HLSLPROGRAM
+			// Required to compile gles 2.0 with standard SRP library
+			// All shaders must be compiled with HLSLcc and currently only gles is not using HLSLcc by default
+			#pragma prefer_hlslcc gles
+			#pragma exclude_renderers d3d11_9x
+			#pragma target 2.0
+
+			// -------------------------------------
+			// Material Keywords
+			#pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2
+			#pragma shader_feature _ _FIXED_NORMALS_VIEWSPACE _FIXED_NORMALS_VIEWSPACE_BACKFACE _FIXED_NORMALS_MODELSPACE  _FIXED_NORMALS_MODELSPACE_BACKFACE
+			#pragma shader_feature _ _SPECULAR _SPECULAR_GLOSSMAP
+			#pragma shader_feature _NORMALMAP
+			#pragma shader_feature _ALPHA_CLIP
+			#pragma shader_feature _EMISSION
+			#pragma shader_feature _DIFFUSE_RAMP
+			#pragma shader_feature _COLOR_ADJUST
+			#pragma shader_feature _RIM_LIGHTING
+			#pragma shader_feature _TEXTURE_BLEND
+			#pragma shader_feature _FOG
+			#pragma shader_feature _RECEIVE_SHADOWS_OFF
+
+			#pragma fragmentoption ARB_precision_hint_fastest
+			#pragma multi_compile_fog
+			#pragma multi_compile _ PIXELSNAP_ON
+			#pragma multi_compile _ ETC1_EXTERNAL_ALPHA
+			
+			// -------------------------------------
+			// Lightweight Pipeline keywords
+			#pragma multi_compile _ _MAIN_LIGHT_SHADOWS
+			#pragma multi_compile _ _MAIN_LIGHT_SHADOWS_CASCADE
+			#pragma multi_compile _ _ADDITIONAL_LIGHTS_VERTEX _ADDITIONAL_LIGHTS
+			#pragma multi_compile _ _ADDITIONAL_LIGHT_SHADOWS
+			#pragma multi_compile _ _SHADOWS_SOFT
+			#pragma multi_compile _ _MIXED_LIGHTING_SUBTRACTIVE
+			
+			// -------------------------------------
+			// Unity defined keywords
+			#pragma multi_compile _ DIRLIGHTMAP_COMBINED
+			#pragma multi_compile _ LIGHTMAP_ON
+			#pragma multi_compile_fog
+			
+			//--------------------------------------
+			// GPU Instancing
+			#pragma multi_compile_instancing
+			
+			//--------------------------------------
+			// Spine related keywords
+			#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
+			#pragma vertex ForwardPassVertexSprite
+			#pragma fragment ForwardPassFragmentSprite
+
+			#define USE_LWRP
+			#define fixed4 half4
+			#define fixed3 half3
+			#define fixed half
+
+			#include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl"
+			#include "Packages/com.unity.render-pipelines.core/ShaderLibrary/CommonMaterial.hlsl"
+
+			#include "CGIncludes/Spine-Input-LW.hlsl"
+			#include "CGIncludes/Spine-Sprite-ForwardPass-LW.hlsl"
+			ENDHLSL
+		}
+
+		Pass
+		{
+			Name "ShadowCaster"
+			Tags{"LightMode" = "ShadowCaster"}
+
+			ZWrite On
+			ZTest LEqual
+			Cull Off
+
+			HLSLPROGRAM
+			// Required to compile gles 2.0 with standard srp library
+			#pragma prefer_hlslcc gles
+			#pragma exclude_renderers d3d11_9x
+			#pragma target 2.0
+
+			// -------------------------------------
+			// Material Keywords
+			#pragma shader_feature _ALPHATEST_ON
+
+			//--------------------------------------
+			// GPU Instancing
+			#pragma multi_compile_instancing
+			#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+
+			#pragma vertex ShadowPassVertexSprite
+			#pragma fragment ShadowPassFragmentSprite
+
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/LitInput.hlsl"
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/ShadowCasterPass.hlsl"
+
+			#define USE_LWRP
+			#define fixed4 half4
+			#define fixed3 half3
+			#define fixed half
+			#include "CGIncludes/Spine-Input-LW.hlsl"
+			#include "CGIncludes/Spine-Sprite-ShadowCasterPass-LW.hlsl"
+			ENDHLSL
+		}
+
+		Pass
+		{
+			Name "DepthOnly"
+			Tags{"LightMode" = "DepthOnly"}
+
+			ZWrite On
+			ColorMask 0
+			Cull Off
+
+			HLSLPROGRAM
+			// Required to compile gles 2.0 with standard srp library
+			#pragma prefer_hlslcc gles
+			#pragma exclude_renderers d3d11_9x
+			#pragma target 2.0
+
+			#pragma vertex DepthOnlyVertexSprite
+			#pragma fragment DepthOnlyFragmentSprite
+
+			// -------------------------------------
+			// Material Keywords
+			#pragma shader_feature _ALPHATEST_ON
+			#pragma shader_feature _SMOOTHNESS_TEXTURE_ALBEDO_CHANNEL_A
+
+			//--------------------------------------
+			// GPU Instancing
+			#pragma multi_compile_instancing
+
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/LitInput.hlsl"
+			#include "Packages/com.unity.render-pipelines.lightweight/Shaders/DepthOnlyPass.hlsl"
+
+			#define USE_LWRP
+			#define fixed4 half4
+			#define fixed3 half3
+			#define fixed half
+			#include "CGIncludes/Spine-Input-LW.hlsl"
+			#include "CGIncludes/Spine-DepthOnlyPass-LW.hlsl"
+			ENDHLSL
+		}
+	}
+	
+	FallBack "Hidden/InternalErrorShader"
+	CustomEditor "SpineSpriteShaderGUI"
+}

+ 9 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Shaders/Spine-Sprite-LW.shader.meta

@@ -0,0 +1,9 @@
+fileFormatVersion: 2
+guid: 199639b6b2859f44bb4dfaaa032efefc
+ShaderImporter:
+  externalObjects: {}
+  defaultTextures: []
+  nonModifiableTextures: []
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: e574027a4d03954469c95b03a443bd4b
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7eb43a94f5f18fe4ca91d5422ec9613c
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Разлика између датотеке није приказан због своје велике величине
+ 696 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro.json


+ 7 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro.json.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 782a38db158bbe54abe5f23c974f3478
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 24 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro_SkeletonData.asset

@@ -0,0 +1,24 @@
+%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: f1b3b4b945939a54ea0b23d3396115fb, type: 3}
+  m_Name: raptor-pro_SkeletonData
+  m_EditorClassIdentifier: 
+  atlasAssets:
+  - {fileID: 11400000, guid: 399f83b8511d02a49bea993c1fb51e88, type: 2}
+  scale: 0.01
+  skeletonJSON: {fileID: 4900000, guid: 782a38db158bbe54abe5f23c974f3478, type: 3}
+  skeletonDataModifiers: []
+  fromAnimation: []
+  toAnimation: []
+  duration: []
+  defaultMix: 0.2
+  controller: {fileID: 0}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor-pro_SkeletonData.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 83b868dae6d9ae34397e35d6f29e926b
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 272 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.atlas.txt

@@ -0,0 +1,272 @@
+
+raptor.png
+size: 1024,512
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+back-arm
+  rotate: false
+  xy: 895, 295
+  size: 46, 25
+  orig: 46, 25
+  offset: 0, 0
+  index: -1
+back-bracer
+  rotate: true
+  xy: 992, 216
+  size: 39, 28
+  orig: 39, 28
+  offset: 0, 0
+  index: -1
+back-hand
+  rotate: false
+  xy: 594, 58
+  size: 36, 34
+  orig: 36, 34
+  offset: 0, 0
+  index: -1
+back-knee
+  rotate: true
+  xy: 729, 86
+  size: 49, 67
+  orig: 49, 67
+  offset: 0, 0
+  index: -1
+back-thigh
+  rotate: false
+  xy: 379, 2
+  size: 39, 24
+  orig: 39, 24
+  offset: 0, 0
+  index: -1
+eyes-open
+  rotate: true
+  xy: 902, 194
+  size: 47, 45
+  orig: 47, 45
+  offset: 0, 0
+  index: -1
+front-arm
+  rotate: false
+  xy: 945, 306
+  size: 48, 26
+  orig: 48, 26
+  offset: 0, 0
+  index: -1
+front-bracer
+  rotate: false
+  xy: 949, 197
+  size: 41, 29
+  orig: 41, 29
+  offset: 0, 0
+  index: -1
+front-hand
+  rotate: false
+  xy: 949, 266
+  size: 41, 38
+  orig: 41, 38
+  offset: 0, 0
+  index: -1
+front-open-hand
+  rotate: false
+  xy: 875, 148
+  size: 43, 44
+  orig: 43, 44
+  offset: 0, 0
+  index: -1
+front-thigh
+  rotate: true
+  xy: 793, 171
+  size: 57, 29
+  orig: 57, 29
+  offset: 0, 0
+  index: -1
+gun
+  rotate: true
+  xy: 379, 28
+  size: 107, 103
+  orig: 107, 103
+  offset: 0, 0
+  index: -1
+gun-nohand
+  rotate: false
+  xy: 487, 87
+  size: 105, 102
+  orig: 105, 102
+  offset: 0, 0
+  index: -1
+head
+  rotate: false
+  xy: 807, 361
+  size: 136, 149
+  orig: 136, 149
+  offset: 0, 0
+  index: -1
+lower-leg
+  rotate: false
+  xy: 827, 195
+  size: 73, 98
+  orig: 73, 98
+  offset: 0, 0
+  index: -1
+mouth-grind
+  rotate: true
+  xy: 920, 145
+  size: 47, 30
+  orig: 47, 30
+  offset: 0, 0
+  index: -1
+mouth-smile
+  rotate: true
+  xy: 992, 257
+  size: 47, 30
+  orig: 47, 30
+  offset: 0, 0
+  index: -1
+neck
+  rotate: false
+  xy: 359, 114
+  size: 18, 21
+  orig: 18, 21
+  offset: 0, 0
+  index: -1
+raptor-back-arm
+  rotate: false
+  xy: 653, 142
+  size: 82, 86
+  orig: 82, 86
+  offset: 0, 0
+  index: -1
+raptor-body
+  rotate: false
+  xy: 2, 277
+  size: 632, 233
+  orig: 632, 233
+  offset: 0, 0
+  index: -1
+raptor-front-arm
+  rotate: true
+  xy: 484, 4
+  size: 81, 102
+  orig: 81, 102
+  offset: 0, 0
+  index: -1
+raptor-front-leg
+  rotate: false
+  xy: 2, 18
+  size: 191, 257
+  orig: 191, 257
+  offset: 0, 0
+  index: -1
+raptor-hindleg-back
+  rotate: false
+  xy: 636, 295
+  size: 169, 215
+  orig: 169, 215
+  offset: 0, 0
+  index: -1
+raptor-horn
+  rotate: false
+  xy: 195, 22
+  size: 182, 80
+  orig: 182, 80
+  offset: 0, 0
+  index: -1
+raptor-horn-back
+  rotate: true
+  xy: 945, 334
+  size: 176, 77
+  orig: 176, 77
+  offset: 0, 0
+  index: -1
+raptor-jaw
+  rotate: false
+  xy: 359, 137
+  size: 126, 138
+  orig: 126, 138
+  offset: 0, 0
+  index: -1
+raptor-jaw-tooth
+  rotate: true
+  xy: 895, 322
+  size: 37, 48
+  orig: 37, 48
+  offset: 0, 0
+  index: -1
+raptor-mouth-inside
+  rotate: true
+  xy: 949, 228
+  size: 36, 41
+  orig: 36, 41
+  offset: 0, 0
+  index: -1
+raptor-saddle-strap-back
+  rotate: true
+  xy: 653, 86
+  size: 54, 74
+  orig: 54, 74
+  offset: 0, 0
+  index: -1
+raptor-saddle-strap-front
+  rotate: false
+  xy: 594, 94
+  size: 57, 95
+  orig: 57, 95
+  offset: 0, 0
+  index: -1
+raptor-saddle-w-shadow
+  rotate: false
+  xy: 195, 104
+  size: 162, 171
+  orig: 162, 171
+  offset: 0, 0
+  index: -1
+raptor-tail-shadow
+  rotate: false
+  xy: 636, 230
+  size: 189, 63
+  orig: 189, 63
+  offset: 0, 0
+  index: -1
+raptor-tongue
+  rotate: false
+  xy: 807, 295
+  size: 86, 64
+  orig: 86, 64
+  offset: 0, 0
+  index: -1
+stirrup-back
+  rotate: true
+  xy: 952, 151
+  size: 44, 35
+  orig: 44, 35
+  offset: 0, 0
+  index: -1
+stirrup-front
+  rotate: false
+  xy: 902, 243
+  size: 45, 50
+  orig: 45, 50
+  offset: 0, 0
+  index: -1
+stirrup-strap
+  rotate: false
+  xy: 824, 147
+  size: 49, 46
+  orig: 49, 46
+  offset: 0, 0
+  index: -1
+torso
+  rotate: false
+  xy: 737, 137
+  size: 54, 91
+  orig: 54, 91
+  offset: 0, 0
+  index: -1
+visor
+  rotate: false
+  xy: 487, 191
+  size: 131, 84
+  orig: 131, 84
+  offset: 0, 0
+  index: -1

+ 7 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.atlas.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b219eece9997ce34681f630958223068
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.png


+ 145 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor.png.meta

@@ -0,0 +1,145 @@
+fileFormatVersion: 2
+guid: 4c61e8d64ed9c3b4c9f0c834b7f9bd2b
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 10
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    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: 2
+    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: 1
+  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: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: iPhone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Windows Store Apps
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Nintendo Switch
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 17 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Atlas.asset

@@ -0,0 +1,17 @@
+%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: a6b194f808b1af6499c93410e504af42, type: 3}
+  m_Name: raptor_Atlas
+  m_EditorClassIdentifier: 
+  atlasFile: {fileID: 4900000, guid: b219eece9997ce34681f630958223068, type: 3}
+  materials:
+  - {fileID: 2100000, guid: 501778ed9798a664b909ce819e493a6f, type: 2}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Atlas.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 399f83b8511d02a49bea993c1fb51e88
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 81 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Material.mat

@@ -0,0 +1,81 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: raptor_Material
+  m_Shader: {fileID: 4800000, guid: 01105625afd026d4e989a24c4d70b8d6, type: 3}
+  m_ShaderKeywords: _ALPHABLEND_ON _RECEIVE_SHADOWS_OFF _STRAIGHT_ALPHA_INPUT
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: -1
+  stringTagMap:
+    AlphaDepth: true
+    IGNOREPROJECTOR: true
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _AlphaTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BlendTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DiffuseRamp:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 4c61e8d64ed9c3b4c9f0c834b7f9bd2b, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - PixelSnap: 0
+    - _BlendAmount: 0
+    - _Brightness: 1
+    - _BumpScale: 1
+    - _Cull: 0
+    - _CustomRenderQueue: 0
+    - _Cutoff: 0.1
+    - _DstBlend: 10
+    - _EmissionPower: 2
+    - _EnableExternalAlpha: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _Hue: 0
+    - _Metallic: 0
+    - _RenderQueue: 0
+    - _RimPower: 2
+    - _Saturation: 1
+    - _ShadowAlphaCutoff: 0.1
+    - _SrcBlend: 1
+    - _StencilComp: 8
+    - _StencilRef: 1
+    - _StraightAlphaInput: 1
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 0, g: 0, b: 0, a: 0}
+    - _FixedNormal: {r: 0, g: 0, b: 1, a: 1}
+    - _OverlayColor: {r: 0, g: 0, b: 0, a: 0}
+    - _RimColor: {r: 1, g: 1, b: 1, a: 1}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/RaptorLWRP/raptor_Material.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 501778ed9798a664b909ce819e493a6f
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 23c56cb648bf0ca40919a0eb1c3791f2
+folderAsset: yes
+DefaultImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-emission.png


+ 145 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-emission.png.meta

@@ -0,0 +1,145 @@
+fileFormatVersion: 2
+guid: f1892711e91b98c4cbb121c5c2081896
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 10
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 1
+    sRGBTexture: 1
+    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: 2
+    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: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: iPhone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Windows Store Apps
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Nintendo Switch
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-normals.png


+ 145 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman-normals.png.meta

@@ -0,0 +1,145 @@
+fileFormatVersion: 2
+guid: 54afe9be49fd5db49a11b9741d32edec
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 10
+  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: 16
+    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: 1
+  textureShape: 1
+  singleChannelComponent: 0
+  maxTextureSizeSet: 0
+  compressionQualitySet: 0
+  textureFormatSet: 0
+  platformSettings:
+  - serializedVersion: 2
+    buildTarget: DefaultTexturePlatform
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: iPhone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Windows Store Apps
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Nintendo Switch
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 41 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.atlas.txt

@@ -0,0 +1,41 @@
+
+stretchyman.png
+size: 1024,256
+format: RGBA8888
+filter: Linear,Linear
+repeat: none
+back-arm
+  rotate: true
+  xy: 679, 173
+  size: 72, 202
+  orig: 72, 202
+  offset: 0, 0
+  index: -1
+back-leg
+  rotate: true
+  xy: 2, 2
+  size: 100, 318
+  orig: 100, 318
+  offset: 0, 0
+  index: -1
+body
+  rotate: true
+  xy: 2, 104
+  size: 141, 452
+  orig: 141, 452
+  offset: 0, 0
+  index: -1
+front-arm
+  rotate: true
+  xy: 456, 100
+  size: 145, 221
+  orig: 145, 221
+  offset: 0, 0
+  index: -1
+head
+  rotate: true
+  xy: 322, 15
+  size: 87, 102
+  orig: 87, 102
+  offset: 0, 0
+  index: -1

+ 7 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.atlas.txt.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 0ed395381a661d0458f54665867273c0
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Разлика између датотеке није приказан због своје велике величине
+ 510 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.json


+ 7 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.json.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: b5e06730b3f0c0249b5eb650ab949253
+TextScriptImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

BIN
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.png


+ 145 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman.png.meta

@@ -0,0 +1,145 @@
+fileFormatVersion: 2
+guid: 02664619cf3c92645ac9790566129b50
+TextureImporter:
+  internalIDToNameTable: []
+  externalObjects: {}
+  serializedVersion: 10
+  mipmaps:
+    mipMapMode: 0
+    enableMipMap: 0
+    sRGBTexture: 1
+    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: 2
+    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: 1
+  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: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Standalone
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: iPhone
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Android
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Windows Store Apps
+    maxTextureSize: 8192
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 1
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  - serializedVersion: 2
+    buildTarget: Nintendo Switch
+    maxTextureSize: 2048
+    resizeAlgorithm: 0
+    textureFormat: -1
+    textureCompression: 0
+    compressionQuality: 50
+    crunchedCompression: 0
+    allowsAlphaSplitting: 0
+    overridden: 0
+    androidETC2FallbackOverride: 0
+  spriteSheet:
+    serializedVersion: 2
+    sprites: []
+    outline: []
+    physicsShape: []
+    bones: []
+    spriteID: 
+    internalID: 0
+    vertices: []
+    indices: 
+    edges: []
+    weights: []
+    secondaryTextures: []
+  spritePackingTag: 
+  pSDRemoveMatte: 0
+  pSDShowRemoveMatteOption: 0
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 17 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Atlas.asset

@@ -0,0 +1,17 @@
+%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: a6b194f808b1af6499c93410e504af42, type: 3}
+  m_Name: stretchyman_Atlas
+  m_EditorClassIdentifier: 
+  atlasFile: {fileID: 4900000, guid: 0ed395381a661d0458f54665867273c0, type: 3}
+  materials:
+  - {fileID: 2100000, guid: 7ee25f95c3010c741aa55289d41e9b7d, type: 2}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Atlas.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: fe648824e1e7ef2459f5f1087d7ad6ef
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 82 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Material.mat

@@ -0,0 +1,82 @@
+%YAML 1.1
+%TAG !u! tag:unity3d.com,2011:
+--- !u!21 &2100000
+Material:
+  serializedVersion: 6
+  m_ObjectHideFlags: 0
+  m_CorrespondingSourceObject: {fileID: 0}
+  m_PrefabInstance: {fileID: 0}
+  m_PrefabAsset: {fileID: 0}
+  m_Name: stretchyman_Material
+  m_Shader: {fileID: 4800000, guid: 199639b6b2859f44bb4dfaaa032efefc, type: 3}
+  m_ShaderKeywords: _ALPHABLEND_ON _EMISSION _FIXED_NORMALS_VIEWSPACE _NORMALMAP _RECEIVE_SHADOWS_OFF
+  m_LightmapFlags: 4
+  m_EnableInstancingVariants: 0
+  m_DoubleSidedGI: 0
+  m_CustomRenderQueue: 3000
+  stringTagMap:
+    AlphaDepth: true
+    IGNOREPROJECTOR: true
+    RenderType: Transparent
+  disabledShaderPasses: []
+  m_SavedProperties:
+    serializedVersion: 3
+    m_TexEnvs:
+    - _AlphaTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BlendTex:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _BumpMap:
+        m_Texture: {fileID: 2800000, guid: 54afe9be49fd5db49a11b9741d32edec, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _DiffuseRamp:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _EmissionMap:
+        m_Texture: {fileID: 2800000, guid: f1892711e91b98c4cbb121c5c2081896, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MainTex:
+        m_Texture: {fileID: 2800000, guid: 02664619cf3c92645ac9790566129b50, type: 3}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    - _MetallicGlossMap:
+        m_Texture: {fileID: 0}
+        m_Scale: {x: 1, y: 1}
+        m_Offset: {x: 0, y: 0}
+    m_Floats:
+    - PixelSnap: 0
+    - _BlendAmount: 0
+    - _Brightness: 1
+    - _BumpScale: 1
+    - _Cull: 0
+    - _CustomRenderQueue: 0
+    - _Cutoff: 0
+    - _DstBlend: 10
+    - _EmissionPower: 2
+    - _EnableExternalAlpha: 0
+    - _GlossMapScale: 1
+    - _Glossiness: 0.5
+    - _Hue: 0
+    - _Metallic: 0
+    - _RenderQueue: 0
+    - _RimPower: 2
+    - _Saturation: 1
+    - _ShadowAlphaCutoff: 0.1
+    - _SrcBlend: 1
+    - _StencilComp: 8
+    - _StencilRef: 1
+    - _StraightAlphaInput: 0
+    - _ZWrite: 0
+    m_Colors:
+    - _Color: {r: 1, g: 1, b: 1, a: 1}
+    - _EmissionColor: {r: 1, g: 1, b: 1, a: 0}
+    - _FixedNormal: {r: 0, g: 0, b: 1, a: 1}
+    - _OverlayColor: {r: 0, g: 0, b: 0, a: 0}
+    - _RimColor: {r: 1, g: 1, b: 1, a: 1}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_Material.mat.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 7ee25f95c3010c741aa55289d41e9b7d
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 2100000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 24 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_SkeletonData.asset

@@ -0,0 +1,24 @@
+%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: f1b3b4b945939a54ea0b23d3396115fb, type: 3}
+  m_Name: stretchyman_SkeletonData
+  m_EditorClassIdentifier: 
+  atlasAssets:
+  - {fileID: 11400000, guid: fe648824e1e7ef2459f5f1087d7ad6ef, type: 2}
+  scale: 0.01
+  skeletonJSON: {fileID: 4900000, guid: b5e06730b3f0c0249b5eb650ab949253, type: 3}
+  skeletonDataModifiers: []
+  fromAnimation: []
+  toAnimation: []
+  duration: []
+  defaultMix: 0.2
+  controller: {fileID: 0}

+ 8 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/Spine Skeletons/StretchymanLWRP/stretchyman_SkeletonData.asset.meta

@@ -0,0 +1,8 @@
+fileFormatVersion: 2
+guid: 4e2ecc2a9b955f343964c702e58dcb53
+NativeFormatImporter:
+  externalObjects: {}
+  mainObjectFileID: 11400000
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

+ 22 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/package.json

@@ -0,0 +1,22 @@
+{
+	"name": "com.esotericsoftware.spine.lwrp-shaders", 
+	"displayName": "Spine Lightweight RP Shaders",
+	"description": "This plugin provides lightweight render pipeline (LWRP) shaders for the spine-unity runtime.\n\nPrerequisites:\nIt requires a working installation of the spine-unity runtime, version 3.8.\n(See http://esotericsoftware.com/git/spine-runtimes/spine-unity)",
+	"version": "3.8.0",
+	"unity": "2018.3",
+	"author": {
+		"name": "Esoteric Software",
+		"email": "[email protected]",
+		"url": "http://esotericsoftware.com/"
+	},
+	"dependencies": {
+		"com.unity.render-pipelines.lightweight": "5.7.2"
+	},
+	"keywords": [
+		"spine",
+		"lwrp",
+		"lightweight",
+		"render pipeline",
+		"shaders"
+	] 
+}

+ 7 - 0
spine-unity/Packages/com.esotericsoftware.spine.lwrp-shaders/package.json.meta

@@ -0,0 +1,7 @@
+fileFormatVersion: 2
+guid: 6c38da08742642a4d9a65f2fde2d13b6
+PackageManifestImporter:
+  externalObjects: {}
+  userData: 
+  assetBundleName: 
+  assetBundleVariant: 

Неке датотеке нису приказане због велике количине промена