├── .gitignore ├── Assembly-CSharp.csproj ├── Assets ├── C_Script │ ├── Control.cs │ ├── Look.cs │ ├── Pat.cs │ ├── Setting.cs │ └── Talk.cs ├── Custom-Shader.shader ├── Editor │ └── SpineSettings.asset ├── Scenes │ └── ba2wall.unity ├── SkipSplash.cs └── Spine │ ├── CHANGELOG.md │ ├── Editor │ ├── spine-unity-editor.asmdef │ └── spine-unity │ │ ├── Editor │ │ ├── Asset Types │ │ │ ├── AnimationReferenceAssetEditor.cs │ │ │ ├── SkeletonDataAssetInspector.cs │ │ │ ├── SpineAtlasAssetInspector.cs │ │ │ └── SpineSpriteAtlasAssetInspector.cs │ │ ├── Components │ │ │ ├── BoneFollowerGraphicInspector.cs │ │ │ ├── BoneFollowerInspector.cs │ │ │ ├── BoundingBoxFollowerGraphicInspector.cs │ │ │ ├── BoundingBoxFollowerInspector.cs │ │ │ ├── PointFollowerInspector.cs │ │ │ ├── SkeletonAnimationInspector.cs │ │ │ ├── SkeletonGraphicCustomMaterialsInspector.cs │ │ │ ├── SkeletonGraphicInspector.cs │ │ │ ├── SkeletonMecanimInspector.cs │ │ │ ├── SkeletonMecanimRootMotionInspector.cs │ │ │ ├── SkeletonRendererCustomMaterialsInspector.cs │ │ │ ├── SkeletonRendererInspector.cs │ │ │ ├── SkeletonRootMotionBaseInspector.cs │ │ │ ├── SkeletonRootMotionInspector.cs │ │ │ ├── SkeletonUtilityBoneInspector.cs │ │ │ └── SkeletonUtilityInspector.cs │ │ ├── GUI │ │ │ ├── AtlasAsset Icon.png │ │ │ ├── SkeletonDataAsset Icon.png │ │ │ ├── icon-animation.png │ │ │ ├── icon-animationRoot.png │ │ │ ├── icon-attachment.png │ │ │ ├── icon-bone.png │ │ │ ├── icon-boneNib.png │ │ │ ├── icon-boundingBox.png │ │ │ ├── icon-clipping.png │ │ │ ├── icon-constraintIK.png │ │ │ ├── icon-constraintNib.png │ │ │ ├── icon-constraintPath.png │ │ │ ├── icon-constraintTransform.png │ │ │ ├── icon-constraints.png │ │ │ ├── icon-event.png │ │ │ ├── icon-hingeChain.png │ │ │ ├── icon-image.png │ │ │ ├── icon-mesh.png │ │ │ ├── icon-null.png │ │ │ ├── icon-path.png │ │ │ ├── icon-point.png │ │ │ ├── icon-poseBones.png │ │ │ ├── icon-skeleton.png │ │ │ ├── icon-skeletonUtility.png │ │ │ ├── icon-skin.png │ │ │ ├── icon-skinPlaceholder.png │ │ │ ├── icon-skinsRoot.png │ │ │ ├── icon-slot.png │ │ │ ├── icon-slotRoot.png │ │ │ ├── icon-spine.png │ │ │ ├── icon-subMeshRenderer.png │ │ │ ├── icon-warning.png │ │ │ └── icon-weights.png │ │ ├── ImporterPresets │ │ │ ├── PMAPresetTemplate.png │ │ │ ├── PMATexturePreset.preset │ │ │ ├── StraightAlphaPreset.preset │ │ │ └── StraightAlphaPresetTemplate.png │ │ ├── Menus.cs │ │ ├── Resources │ │ │ └── SpineAssetDatabaseMarker.txt │ │ ├── Shaders │ │ │ ├── SpineShaderWithOutlineGUI.cs │ │ │ └── SpineSpriteShaderGUI.cs │ │ ├── SpineAttributeDrawers.cs │ │ ├── Utility │ │ │ ├── AssetDatabaseAvailabilityDetector.cs │ │ │ ├── AssetUtility.cs │ │ │ ├── BlendModeMaterialsUtility.cs │ │ │ ├── BuildSettings.cs │ │ │ ├── DataReloadHandler.cs │ │ │ ├── Icons.cs │ │ │ ├── Instantiation.cs │ │ │ ├── Preferences.cs │ │ │ ├── SpineEditorUtilities.cs │ │ │ ├── SpineHandles.cs │ │ │ ├── SpineInspectorUtility.cs │ │ │ └── SpineMaskUtilities.cs │ │ └── Windows │ │ │ ├── SkeletonBaker.cs │ │ │ ├── SkeletonBakingWindow.cs │ │ │ ├── SkeletonDebugWindow.cs │ │ │ ├── SpinePreferences.cs │ │ │ └── SpriteAtlasImportWindow.cs │ │ └── Modules │ │ ├── SkeletonRenderSeparator │ │ └── Editor │ │ │ ├── SkeletonPartsRendererInspector.cs │ │ │ └── SkeletonRenderSeparatorInspector.cs │ │ └── SlotBlendModes │ │ └── Editor │ │ └── SlotBlendModesEditor.cs │ ├── Runtime │ ├── spine-csharp │ │ ├── Animation.cs │ │ ├── AnimationState.cs │ │ ├── AnimationStateData.cs │ │ ├── Atlas.cs │ │ ├── Attachments │ │ │ ├── AtlasAttachmentLoader.cs │ │ │ ├── Attachment.cs │ │ │ ├── AttachmentLoader.cs │ │ │ ├── AttachmentType.cs │ │ │ ├── BoundingBoxAttachment.cs │ │ │ ├── ClippingAttachment.cs │ │ │ ├── MeshAttachment.cs │ │ │ ├── PathAttachment.cs │ │ │ ├── PointAttachment.cs │ │ │ ├── RegionAttachment.cs │ │ │ └── VertexAttachment.cs │ │ ├── BlendMode.cs │ │ ├── Bone.cs │ │ ├── BoneData.cs │ │ ├── Collections │ │ │ └── OrderedDictionary.cs │ │ ├── ConstraintData.cs │ │ ├── Event.cs │ │ ├── EventData.cs │ │ ├── ExposedList.cs │ │ ├── IUpdatable.cs │ │ ├── IkConstraint.cs │ │ ├── IkConstraintData.cs │ │ ├── Json.cs │ │ ├── MathUtils.cs │ │ ├── PathConstraint.cs │ │ ├── PathConstraintData.cs │ │ ├── Skeleton.cs │ │ ├── SkeletonBinary.cs │ │ ├── SkeletonBounds.cs │ │ ├── SkeletonClipping.cs │ │ ├── SkeletonData.cs │ │ ├── SkeletonJson.cs │ │ ├── Skin.cs │ │ ├── Slot.cs │ │ ├── SlotData.cs │ │ ├── TransformConstraint.cs │ │ ├── TransformConstraintData.cs │ │ └── Triangulator.cs │ ├── spine-unity.asmdef │ └── spine-unity │ │ ├── Asset Types │ │ ├── AnimationReferenceAsset.cs │ │ ├── AtlasAssetBase.cs │ │ ├── BlendModeMaterials.cs │ │ ├── EventDataReferenceAsset.cs │ │ ├── RegionlessAttachmentLoader.cs │ │ ├── SkeletonDataAsset.cs │ │ ├── SkeletonDataCompatibility.cs │ │ ├── SkeletonDataModifierAsset.cs │ │ ├── SpineAtlasAsset.cs │ │ └── SpineSpriteAtlasAsset.cs │ │ ├── Components │ │ ├── Following │ │ │ ├── BoneFollower.cs │ │ │ ├── BoneFollowerGraphic.cs │ │ │ ├── BoundingBoxFollower.cs │ │ │ ├── BoundingBoxFollowerGraphic.cs │ │ │ └── PointFollower.cs │ │ ├── RootMotion │ │ │ ├── SkeletonMecanimRootMotion.cs │ │ │ ├── SkeletonRootMotion.cs │ │ │ └── SkeletonRootMotionBase.cs │ │ ├── SkeletonAnimation.cs │ │ ├── SkeletonGraphic.cs │ │ ├── SkeletonMecanim.cs │ │ ├── SkeletonRenderSeparator │ │ │ ├── SkeletonPartsRenderer.cs │ │ │ └── SkeletonRenderSeparator.cs │ │ ├── SkeletonRenderer.cs │ │ ├── SkeletonRendererCustomMaterials │ │ │ ├── SkeletonGraphicCustomMaterials.cs │ │ │ └── SkeletonRendererCustomMaterials.cs │ │ └── SkeletonUtility │ │ │ ├── ActivateBasedOnFlipDirection.cs │ │ │ ├── FollowLocationRigidbody.cs │ │ │ ├── FollowLocationRigidbody2D.cs │ │ │ ├── FollowSkeletonUtilityRootRotation.cs │ │ │ ├── SkeletonUtility.cs │ │ │ ├── SkeletonUtilityBone.cs │ │ │ └── SkeletonUtilityConstraint.cs │ │ ├── Deprecated │ │ └── SlotBlendModes │ │ │ └── SlotBlendModes.cs │ │ ├── ISkeletonAnimation.cs │ │ ├── Materials │ │ ├── SkeletonGraphicDefault.mat │ │ ├── SkeletonGraphicDefaultOutline.mat │ │ ├── SkeletonGraphicTintBlack.mat │ │ └── SkeletonGraphicTintBlackOutline.mat │ │ ├── Mesh Generation │ │ ├── DoubleBuffered.cs │ │ ├── MeshGenerator.cs │ │ ├── MeshRendererBuffers.cs │ │ ├── SkeletonRendererInstruction.cs │ │ └── SpineMesh.cs │ │ ├── Modules │ │ └── TK2D │ │ │ └── SpriteCollectionAttachmentLoader.cs │ │ ├── Shaders │ │ ├── BlendModes │ │ │ ├── Spine-Skeleton-PMA-Additive.shader │ │ │ ├── Spine-Skeleton-PMA-Multiply.shader │ │ │ └── Spine-Skeleton-PMA-Screen.shader │ │ ├── CGIncludes │ │ │ ├── Spine-DepthOnlyPass.cginc │ │ │ ├── Spine-Outline-Common.cginc │ │ │ ├── Spine-Skeleton-Lit-Common-Shadow.cginc │ │ │ ├── Spine-Skeleton-Lit-Common.cginc │ │ │ └── Spine-Skeleton-Tint-Common.cginc │ │ ├── Outline │ │ │ ├── BlendModes │ │ │ │ ├── Spine-Skeleton-PMA-Additive-Outline.shader │ │ │ │ ├── Spine-Skeleton-PMA-Multiply-Outline.shader │ │ │ │ └── Spine-Skeleton-PMA-Screen-Outline.shader │ │ │ ├── CGIncludes │ │ │ │ └── Spine-Outline-Pass.cginc │ │ │ ├── SkeletonGraphic │ │ │ │ ├── Spine-SkeletonGraphic-Outline.shader │ │ │ │ └── Spine-SkeletonGraphic-TintBlack-Outline.shader │ │ │ ├── Spine-Skeleton-Fill-Outline.shader │ │ │ ├── Spine-Skeleton-Lit-Outline.shader │ │ │ ├── Spine-Skeleton-Lit-ZWrite-Outline.shader │ │ │ ├── Spine-Skeleton-Outline.shader │ │ │ ├── Spine-Skeleton-OutlineOnly-ZWrite.shader │ │ │ ├── Spine-Skeleton-Tint-Outline.shader │ │ │ ├── Spine-Skeleton-TintBlack-Outline.shader │ │ │ ├── Spine-Special-Skeleton-Grayscale-Outline.shader │ │ │ └── Sprite │ │ │ │ ├── SpritesPixelLit-Outline.shader │ │ │ │ ├── SpritesUnlit-Outline.shader │ │ │ │ └── SpritesVertexLit-Outline.shader │ │ ├── SkeletonGraphic │ │ │ ├── Spine-SkeletonGraphic-TintBlack.shader │ │ │ └── Spine-SkeletonGraphic.shader │ │ ├── Spine-Skeleton-Fill.shader │ │ ├── Spine-Skeleton-Lit-ZWrite.shader │ │ ├── Spine-Skeleton-Lit.shader │ │ ├── Spine-Skeleton-Tint.shader │ │ ├── Spine-Skeleton-TintBlack.shader │ │ ├── Spine-Skeleton.shader │ │ ├── Spine-Special-Skeleton-Grayscale.shader │ │ ├── Sprite │ │ │ ├── CGIncludes │ │ │ │ ├── ShaderMaths.cginc │ │ │ │ ├── ShaderShared.cginc │ │ │ │ ├── SpriteLighting.cginc │ │ │ │ ├── SpritePixelLighting.cginc │ │ │ │ ├── SpriteShadows.cginc │ │ │ │ ├── SpriteSpecular.cginc │ │ │ │ ├── SpriteUnlit.cginc │ │ │ │ └── SpriteVertexLighting.cginc │ │ │ ├── CameraDepthNormalsTexture.shader │ │ │ ├── CameraDepthTexture.shader │ │ │ ├── CameraNormalsTexture.shader │ │ │ ├── README.md │ │ │ ├── SpriteDepthNormalsTexture.shader │ │ │ ├── SpritesPixelLit.shader │ │ │ ├── SpritesUnlit.shader │ │ │ └── SpritesVertexLit.shader │ │ └── Utility │ │ │ ├── Hidden-Spine-Bones.shader │ │ │ ├── HiddenPass.mat │ │ │ └── HiddenPass.shader │ │ ├── SkeletonDataModifierAssets │ │ └── BlendModeMaterials │ │ │ ├── BlendModeMaterialsAsset.cs │ │ │ ├── Default BlendModeMaterials.asset │ │ │ ├── SkeletonPMAAdditive.mat │ │ │ ├── SkeletonPMAMultiply.mat │ │ │ └── SkeletonPMAScreen.mat │ │ ├── SpineAttributes.cs │ │ └── Utility │ │ ├── AtlasUtilities.cs │ │ ├── AttachmentCloneExtensions.cs │ │ ├── AttachmentRegionExtensions.cs │ │ ├── MaterialChecks.cs │ │ ├── SkeletonExtensions.cs │ │ ├── SkinUtilities.cs │ │ ├── TimelineExtensions.cs │ │ └── YieldInstructions │ │ ├── WaitForSpineAnimation.cs │ │ ├── WaitForSpineAnimationComplete.cs │ │ ├── WaitForSpineAnimationEnd.cs │ │ ├── WaitForSpineEvent.cs │ │ └── WaitForSpineTrackEntryEnd.cs │ ├── package.json │ └── version.txt ├── LICENSE ├── Packages └── manifest.json ├── README.md ├── ba2wall.sln ├── spine-unity-editor.csproj └── spine-unity.csproj /.gitignore: -------------------------------------------------------------------------------- 1 | 0e/ 2 | Library/ 3 | Logs/ 4 | obj/ 5 | ProjectSettings/ 6 | Assets/StreamingAssets/ 7 | *.meta 8 | .vs/ 9 | Temp/ 10 | data/ 11 | 0Data/ 12 | -------------------------------------------------------------------------------- /Assets/C_Script/Look.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | public class Look : MonoBehaviour, IPointerDownHandler, IPointerUpHandler 5 | { 6 | public GameObject spineBaseGo; 7 | 8 | void Start() 9 | { 10 | 11 | } 12 | 13 | void Update() 14 | { 15 | 16 | } 17 | 18 | public void OnPointerDown(PointerEventData eventData) 19 | { 20 | spineBaseGo.GetComponent().SetLooking(true); 21 | } 22 | 23 | public void OnPointerUp(PointerEventData eventData) 24 | { 25 | spineBaseGo.GetComponent().SetLooking(false); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Assets/C_Script/Pat.cs: -------------------------------------------------------------------------------- 1 | using UnityEngine; 2 | using UnityEngine.EventSystems; 3 | 4 | public class Pat : MonoBehaviour, IPointerDownHandler, IPointerUpHandler 5 | { 6 | public GameObject spineBaseGo; 7 | 8 | void Start() 9 | { 10 | 11 | } 12 | 13 | void Update() 14 | { 15 | 16 | } 17 | 18 | public void OnPointerDown(PointerEventData eventData) 19 | { 20 | spineBaseGo.GetComponent().SetPatting(true); 21 | } 22 | 23 | public void OnPointerUp(PointerEventData eventData) 24 | { 25 | spineBaseGo.GetComponent().SetPatting(false); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /Assets/C_Script/Setting.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | 4 | [Serializable] 5 | public class Setting 6 | { 7 | public string student; 8 | public bool debug; 9 | public bool rotation; 10 | public float scale; 11 | public float lookRange; 12 | public Pat pat; 13 | public Bgm bgm; 14 | public Se se; 15 | public Talk talk; 16 | public Bone bone; 17 | public Bg bg; 18 | 19 | public List imageList = new List(); 20 | 21 | [Serializable] 22 | public class Bgm 23 | { 24 | public bool enable; 25 | public float volume; 26 | } 27 | 28 | [Serializable] 29 | public class Pat 30 | { 31 | public float range; 32 | public bool somethingWrong; 33 | } 34 | 35 | [Serializable] 36 | public class Se 37 | { 38 | public bool enable; 39 | public string name; 40 | public float volume; 41 | } 42 | 43 | [Serializable] 44 | public class Talk 45 | { 46 | public float volume; 47 | public bool onlyTalk; 48 | public int maxIndex; 49 | public List voiceList = new List(); 50 | } 51 | 52 | [Serializable] 53 | public class Bone 54 | { 55 | public string eyeL; 56 | public string eyeR; 57 | public string halo; 58 | public string neck; 59 | } 60 | 61 | [Serializable] 62 | public class Bg 63 | { 64 | public bool isSpine; 65 | public string name; 66 | public State state; 67 | public List imageList = new List(); 68 | } 69 | 70 | [Serializable] 71 | public class State 72 | { 73 | public bool more; 74 | public string name; 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /Assets/C_Script/Talk.cs: -------------------------------------------------------------------------------- 1 | using System.Collections; 2 | using System.Collections.Generic; 3 | using UnityEngine; 4 | using UnityEngine.EventSystems; 5 | 6 | public class Talk : MonoBehaviour, IPointerClickHandler 7 | { 8 | public GameObject spineBaseGo; 9 | 10 | void Start() 11 | { 12 | 13 | } 14 | 15 | void Update() 16 | { 17 | 18 | } 19 | 20 | public void OnPointerClick(PointerEventData eventData) 21 | { 22 | spineBaseGo.GetComponent().SetTalking(); 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /Assets/Custom-Shader.shader: -------------------------------------------------------------------------------- 1 | Shader "Custom/Shader" { 2 | Properties { 3 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 4 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 5 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 6 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 7 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 8 | 9 | // Outline properties are drawn via custom editor. 10 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 11 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 12 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 13 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 14 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 15 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 16 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 17 | } 18 | 19 | SubShader { 20 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 21 | 22 | Fog { Mode Off } 23 | Cull Off 24 | ZWrite Off 25 | Blend One OneMinusSrcAlpha 26 | Lighting Off 27 | 28 | Stencil { 29 | Ref[_StencilRef] 30 | Comp[_StencilComp] 31 | Pass Keep 32 | } 33 | 34 | Pass { 35 | Name "Normal" 36 | 37 | CGPROGRAM 38 | #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT 39 | #pragma vertex vert 40 | #pragma fragment frag 41 | #include "UnityCG.cginc" 42 | sampler2D _MainTex; 43 | 44 | struct VertexInput { 45 | float4 vertex : POSITION; 46 | float2 uv : TEXCOORD0; 47 | float4 vertexColor : COLOR; 48 | }; 49 | 50 | struct VertexOutput { 51 | float4 pos : SV_POSITION; 52 | float2 uv : TEXCOORD0; 53 | float4 vertexColor : COLOR; 54 | }; 55 | 56 | VertexOutput vert (VertexInput v) { 57 | VertexOutput o; 58 | o.pos = UnityObjectToClipPos(v.vertex); 59 | o.uv = v.uv; 60 | o.vertexColor = v.vertexColor; 61 | return o; 62 | } 63 | 64 | float4 frag (VertexOutput i) : SV_Target { 65 | float4 texColor = tex2D(_MainTex, i.uv); 66 | 67 | //#if defined(_STRAIGHT_ALPHA_INPUT) 68 | texColor.rgb *= texColor.a; 69 | //#endif 70 | 71 | return (texColor * i.vertexColor); 72 | } 73 | ENDCG 74 | } 75 | 76 | Pass { 77 | Name "Caster" 78 | Tags { "LightMode"="ShadowCaster" } 79 | Offset 1, 1 80 | ZWrite On 81 | ZTest LEqual 82 | 83 | Fog { Mode Off } 84 | Cull Off 85 | Lighting Off 86 | 87 | CGPROGRAM 88 | #pragma vertex vert 89 | #pragma fragment frag 90 | #pragma multi_compile_shadowcaster 91 | #pragma fragmentoption ARB_precision_hint_fastest 92 | #include "UnityCG.cginc" 93 | sampler2D _MainTex; 94 | fixed _Cutoff; 95 | 96 | struct VertexOutput { 97 | V2F_SHADOW_CASTER; 98 | float4 uvAndAlpha : TEXCOORD1; 99 | }; 100 | 101 | VertexOutput vert (appdata_base v, float4 vertexColor : COLOR) { 102 | VertexOutput o; 103 | o.uvAndAlpha = v.texcoord; 104 | o.uvAndAlpha.a = vertexColor.a; 105 | TRANSFER_SHADOW_CASTER(o) 106 | return o; 107 | } 108 | 109 | float4 frag (VertexOutput i) : SV_Target { 110 | fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy); 111 | clip(texcol.a * i.uvAndAlpha.a - _Cutoff); 112 | SHADOW_CASTER_FRAGMENT(i) 113 | } 114 | ENDCG 115 | } 116 | } 117 | CustomEditor "SpineShaderWithOutlineGUI" 118 | } 119 | -------------------------------------------------------------------------------- /Assets/Editor/SpineSettings.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_CorrespondingSourceObject: {fileID: 0} 7 | m_PrefabInstance: {fileID: 0} 8 | m_PrefabAsset: {fileID: 0} 9 | m_GameObject: {fileID: 0} 10 | m_Enabled: 1 11 | m_EditorHideFlags: 0 12 | m_Script: {fileID: 11500000, guid: b29e98153ec2fbd44b8f7da1b41194e8, type: 3} 13 | m_Name: SpineSettings 14 | m_EditorClassIdentifier: 15 | defaultScale: 0.01 16 | defaultMix: 0.2 17 | defaultShader: Spine/Skeleton 18 | defaultZSpacing: 0 19 | defaultInstantiateLoop: 1 20 | showHierarchyIcons: 1 21 | setTextureImporterSettings: 1 22 | textureSettingsReference: Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/PMATexturePreset.preset 23 | blendModeMaterialMultiply: {fileID: 0} 24 | blendModeMaterialScreen: {fileID: 0} 25 | blendModeMaterialAdditive: {fileID: 0} 26 | atlasTxtImportWarning: 1 27 | textureImporterWarning: 1 28 | componentMaterialWarning: 1 29 | autoReloadSceneSkeletons: 1 30 | handleScale: 1 31 | mecanimEventIncludeFolderName: 1 32 | timelineUseBlendDuration: 1 33 | -------------------------------------------------------------------------------- /Assets/SkipSplash.cs: -------------------------------------------------------------------------------- 1 | /* ---------------------------------------------------------------- */ 2 | /* Skip Unity Splash Screen */ 3 | /* Create by psygames */ 4 | /* https://github.com/psygames/UnitySkipSplash */ 5 | /* ---------------------------------------------------------------- */ 6 | 7 | #if !UNITY_EDITOR 8 | using UnityEngine; 9 | using UnityEngine.Rendering; 10 | 11 | public class SkipSplash 12 | { 13 | [RuntimeInitializeOnLoadMethod(RuntimeInitializeLoadType.BeforeSplashScreen)] 14 | private static void BeforeSplashScreen() 15 | { 16 | #if UNITY_WEBGL 17 | Application.focusChanged += Application_focusChanged; 18 | #else 19 | System.Threading.Tasks.Task.Run(AsyncSkip); 20 | #endif 21 | } 22 | 23 | #if UNITY_WEBGL 24 | private static void Application_focusChanged(bool obj) 25 | { 26 | Application.focusChanged -= Application_focusChanged; 27 | SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate); 28 | } 29 | #else 30 | private static void AsyncSkip() 31 | { 32 | SplashScreen.Stop(SplashScreen.StopBehavior.StopImmediate); 33 | } 34 | #endif 35 | } 36 | #endif 37 | -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity-editor.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spine-unity-editor", 3 | "references": [ 4 | "spine-unity" 5 | ], 6 | "optionalUnityReferences": [], 7 | "includePlatforms": [ 8 | "Editor" 9 | ], 10 | "excludePlatforms": [], 11 | "allowUnsafeCode": false 12 | } -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonMecanimRootMotionInspector.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEditor; 31 | using UnityEngine; 32 | 33 | namespace Spine.Unity.Editor { 34 | [CustomEditor(typeof(SkeletonMecanimRootMotion))] 35 | [CanEditMultipleObjects] 36 | public class SkeletonMecanimRootMotionInspector : SkeletonRootMotionBaseInspector { 37 | protected SerializedProperty mecanimLayerFlags; 38 | 39 | protected GUIContent mecanimLayersLabel; 40 | 41 | protected override void OnEnable () { 42 | base.OnEnable(); 43 | mecanimLayerFlags = serializedObject.FindProperty("mecanimLayerFlags"); 44 | 45 | mecanimLayersLabel = new UnityEngine.GUIContent("Mecanim Layers", "Mecanim layers to apply root motion at. Defaults to the first Mecanim layer."); 46 | } 47 | 48 | override public void OnInspectorGUI () { 49 | 50 | base.MainPropertyFields(); 51 | MecanimLayerMaskPropertyField(); 52 | 53 | base.OptionalPropertyFields(); 54 | serializedObject.ApplyModifiedProperties(); 55 | } 56 | 57 | protected string[] GetLayerNames () { 58 | int maxLayerCount = 0; 59 | int maxIndex = 0; 60 | for (int i = 0; i < targets.Length; ++i) { 61 | var skeletonMecanim = ((SkeletonMecanimRootMotion)targets[i]).SkeletonMecanim; 62 | int count = skeletonMecanim.Translator.MecanimLayerCount; 63 | if (count > maxLayerCount) { 64 | maxLayerCount = count; 65 | maxIndex = i; 66 | } 67 | } 68 | if (maxLayerCount == 0) 69 | return new string[0]; 70 | var skeletonMecanimMaxLayers = ((SkeletonMecanimRootMotion)targets[maxIndex]).SkeletonMecanim; 71 | return skeletonMecanimMaxLayers.Translator.MecanimLayerNames; 72 | } 73 | 74 | protected void MecanimLayerMaskPropertyField () { 75 | string[] layerNames = GetLayerNames(); 76 | if (layerNames.Length > 0) 77 | mecanimLayerFlags.intValue = EditorGUILayout.MaskField( 78 | mecanimLayersLabel, mecanimLayerFlags.intValue, layerNames); 79 | } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/Components/SkeletonRootMotionInspector.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEditor; 31 | using UnityEngine; 32 | 33 | namespace Spine.Unity.Editor { 34 | [CustomEditor(typeof(SkeletonRootMotion))] 35 | [CanEditMultipleObjects] 36 | public class SkeletonRootMotionInspector : SkeletonRootMotionBaseInspector { 37 | protected SerializedProperty animationTrackFlags; 38 | protected GUIContent animationTrackFlagsLabel; 39 | 40 | string[] TrackNames; 41 | 42 | protected override void OnEnable () { 43 | base.OnEnable(); 44 | 45 | animationTrackFlags = serializedObject.FindProperty("animationTrackFlags"); 46 | animationTrackFlagsLabel = new UnityEngine.GUIContent("Animation Tracks", 47 | "Animation tracks to apply root motion at. Defaults to the first" + 48 | " animation track (index 0)."); 49 | } 50 | 51 | override public void OnInspectorGUI () { 52 | 53 | base.MainPropertyFields(); 54 | AnimationTracksPropertyField(); 55 | 56 | base.OptionalPropertyFields(); 57 | serializedObject.ApplyModifiedProperties(); 58 | } 59 | 60 | protected void AnimationTracksPropertyField () { 61 | 62 | if (TrackNames == null) { 63 | InitTrackNames(); 64 | 65 | } 66 | 67 | animationTrackFlags.intValue = EditorGUILayout.MaskField( 68 | animationTrackFlagsLabel, animationTrackFlags.intValue, TrackNames); 69 | } 70 | 71 | protected void InitTrackNames () { 72 | int numEntries = 32; 73 | TrackNames = new string[numEntries]; 74 | for (int i = 0; i < numEntries; ++i) { 75 | TrackNames[i] = string.Format("Track {0}", i); 76 | } 77 | } 78 | } 79 | } 80 | -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/AtlasAsset Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/AtlasAsset Icon.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/SkeletonDataAsset Icon.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-animation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-animation.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-animationRoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-animationRoot.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-attachment.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-attachment.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-bone.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-bone.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-boneNib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-boneNib.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-boundingBox.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-boundingBox.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-clipping.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-clipping.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintIK.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintIK.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintNib.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintNib.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintPath.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintPath.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintTransform.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraintTransform.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraints.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-constraints.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-event.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-event.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-hingeChain.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-hingeChain.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-image.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-mesh.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-mesh.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-null.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-null.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-path.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-path.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-point.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-point.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-poseBones.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-poseBones.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skeleton.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skeleton.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skeletonUtility.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skeletonUtility.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skin.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skin.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skinPlaceholder.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skinPlaceholder.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skinsRoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-skinsRoot.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-slot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-slot.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-slotRoot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-slotRoot.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-spine.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-spine.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-subMeshRenderer.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-subMeshRenderer.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-warning.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-warning.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/GUI/icon-weights.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/GUI/icon-weights.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/PMAPresetTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/PMAPresetTemplate.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/StraightAlphaPresetTemplate.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ArisStudio/ba2wall/5b3302e81b0e79fae2065bd98a33eaf442186c4e/Assets/Spine/Editor/spine-unity/Editor/ImporterPresets/StraightAlphaPresetTemplate.png -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/Menus.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | using System.IO; 32 | using UnityEditor; 33 | using UnityEngine; 34 | 35 | namespace Spine.Unity.Editor { 36 | public static class Menus { 37 | [MenuItem("GameObject/Spine/SkeletonRenderer", false, 10)] 38 | static public void CreateSkeletonRendererGameObject () { 39 | EditorInstantiation.InstantiateEmptySpineGameObject("New SkeletonRenderer", true); 40 | } 41 | 42 | [MenuItem("GameObject/Spine/SkeletonAnimation", false, 10)] 43 | static public void CreateSkeletonAnimationGameObject () { 44 | EditorInstantiation.InstantiateEmptySpineGameObject("New SkeletonAnimation", true); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/Resources/SpineAssetDatabaseMarker.txt: -------------------------------------------------------------------------------- 1 | DO NOT MOVE OR DELETE THIS FILE -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Editor/Utility/AssetDatabaseAvailabilityDetector.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | 32 | namespace Spine.Unity.Editor { 33 | public static class AssetDatabaseAvailabilityDetector { 34 | const string MarkerResourceName = "SpineAssetDatabaseMarker"; 35 | private static bool isMarkerLoaded; 36 | 37 | public static bool IsAssetDatabaseAvailable (bool forceCheck = false) { 38 | if (!forceCheck && isMarkerLoaded) 39 | return true; 40 | 41 | TextAsset markerTextAsset = Resources.Load(AssetDatabaseAvailabilityDetector.MarkerResourceName); 42 | isMarkerLoaded = markerTextAsset != null; 43 | if (markerTextAsset != null) { 44 | Resources.UnloadAsset(markerTextAsset); 45 | } 46 | 47 | return isMarkerLoaded; 48 | } 49 | } 50 | } 51 | -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Modules/SkeletonRenderSeparator/Editor/SkeletonPartsRendererInspector.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | using UnityEditor; 32 | using Spine.Unity.Editor; 33 | 34 | namespace Spine.Unity.Examples { 35 | [CustomEditor(typeof(SkeletonPartsRenderer))] 36 | public class SkeletonRenderPartInspector : UnityEditor.Editor { 37 | SpineInspectorUtility.SerializedSortingProperties sortingProperties; 38 | 39 | void OnEnable () { 40 | sortingProperties = new SpineInspectorUtility.SerializedSortingProperties(SpineInspectorUtility.GetRenderersSerializedObject(serializedObject)); 41 | } 42 | 43 | public override void OnInspectorGUI () { 44 | SpineInspectorUtility.SortingPropertyFields(sortingProperties, true); 45 | 46 | if (!serializedObject.isEditingMultipleObjects) { 47 | EditorGUILayout.Space(); 48 | if (SpineInspectorUtility.LargeCenteredButton(new GUIContent("Select SkeletonRenderer", SpineEditorUtilities.Icons.spine))) { 49 | var thisSkeletonPartsRenderer = target as SkeletonPartsRenderer; 50 | var srs = thisSkeletonPartsRenderer.GetComponentInParent(); 51 | if (srs != null && srs.partsRenderers.Contains(thisSkeletonPartsRenderer) && srs.SkeletonRenderer != null) 52 | Selection.activeGameObject = srs.SkeletonRenderer.gameObject; 53 | } 54 | } 55 | } 56 | } 57 | 58 | } 59 | -------------------------------------------------------------------------------- /Assets/Spine/Editor/spine-unity/Modules/SlotBlendModes/Editor/SlotBlendModesEditor.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | using UnityEditor; 32 | using Spine.Unity.Deprecated; 33 | using System; 34 | 35 | namespace Spine.Unity.Editor { 36 | using Editor = UnityEditor.Editor; 37 | 38 | [Obsolete("The spine-unity 3.7 runtime introduced SkeletonDataModifierAssets BlendModeMaterials which replaced SlotBlendModes. Will be removed in spine-unity 3.9.", false)] 39 | public class SlotBlendModesEditor : Editor { 40 | 41 | [MenuItem("CONTEXT/SkeletonRenderer/Add Slot Blend Modes Component")] 42 | static void AddSlotBlendModesComponent (MenuCommand command) { 43 | var skeletonRenderer = (SkeletonRenderer)command.context; 44 | skeletonRenderer.gameObject.AddComponent(); 45 | } 46 | } 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/Attachment.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | abstract public class Attachment { 34 | public string Name { get; private set; } 35 | 36 | protected Attachment (string name) { 37 | if (name == null) throw new ArgumentNullException("name", "name cannot be null"); 38 | Name = name; 39 | } 40 | 41 | override public string ToString () { 42 | return Name; 43 | } 44 | 45 | ///Returns a copy of the attachment. 46 | public abstract Attachment Copy (); 47 | } 48 | 49 | public interface IHasRendererObject { 50 | object RendererObject { get; set; } 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/AttachmentLoader.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine { 31 | public interface AttachmentLoader { 32 | /// May be null to not load any attachment. 33 | RegionAttachment NewRegionAttachment (Skin skin, string name, string path); 34 | 35 | /// May be null to not load any attachment. 36 | MeshAttachment NewMeshAttachment (Skin skin, string name, string path); 37 | 38 | /// May be null to not load any attachment. 39 | BoundingBoxAttachment NewBoundingBoxAttachment (Skin skin, string name); 40 | 41 | /// May be null to not load any attachment 42 | PathAttachment NewPathAttachment (Skin skin, string name); 43 | 44 | PointAttachment NewPointAttachment (Skin skin, string name); 45 | 46 | ClippingAttachment NewClippingAttachment (Skin skin, string name); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/AttachmentType.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine { 31 | public enum AttachmentType { 32 | Region, Boundingbox, Mesh, Linkedmesh, Path, Point, Clipping 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/BoundingBoxAttachment.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | /// Attachment that has a polygon for bounds checking. 34 | public class BoundingBoxAttachment : VertexAttachment { 35 | public BoundingBoxAttachment (string name) 36 | : base(name) { 37 | } 38 | 39 | public override Attachment Copy () { 40 | BoundingBoxAttachment copy = new BoundingBoxAttachment(this.Name); 41 | CopyTo(copy); 42 | return copy; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/ClippingAttachment.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | public class ClippingAttachment : VertexAttachment { 34 | internal SlotData endSlot; 35 | 36 | public SlotData EndSlot { get { return endSlot; } set { endSlot = value; } } 37 | 38 | public ClippingAttachment(string name) : base(name) { 39 | } 40 | 41 | public override Attachment Copy () { 42 | ClippingAttachment copy = new ClippingAttachment(this.Name); 43 | CopyTo(copy); 44 | copy.endSlot = endSlot; 45 | return copy; 46 | } 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/PathAttachment.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | using System.Collections.Generic; 32 | 33 | namespace Spine { 34 | public class PathAttachment : VertexAttachment { 35 | internal float[] lengths; 36 | internal bool closed, constantSpeed; 37 | 38 | /// The length in the setup pose from the start of the path to the end of each curve. 39 | public float[] Lengths { get { return lengths; } set { lengths = value; } } 40 | public bool Closed { get { return closed; } set { closed = value; } } 41 | public bool ConstantSpeed { get { return constantSpeed; } set { constantSpeed = value; } } 42 | 43 | public PathAttachment (String name) 44 | : base(name) { 45 | } 46 | 47 | public override Attachment Copy () { 48 | PathAttachment copy = new PathAttachment(this.Name); 49 | CopyTo(copy); 50 | copy.lengths = new float[lengths.Length]; 51 | Array.Copy(lengths, 0, copy.lengths, 0, lengths.Length); 52 | copy.closed = closed; 53 | copy.constantSpeed = constantSpeed; 54 | return copy; 55 | } 56 | } 57 | } 58 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Attachments/PointAttachment.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine { 31 | /// 32 | /// An attachment which is a single point and a rotation. This can be used to spawn projectiles, particles, etc. A bone can be 33 | /// used in similar ways, but a PointAttachment is slightly less expensive to compute and can be hidden, shown, and placed in a 34 | /// skin. 35 | ///

36 | /// See Point Attachments in the Spine User Guide. 37 | ///

38 | public class PointAttachment : Attachment { 39 | internal float x, y, rotation; 40 | public float X { get { return x; } set { x = value; } } 41 | public float Y { get { return y; } set { y = value; } } 42 | public float Rotation { get { return rotation; } set { rotation = value; } } 43 | 44 | public PointAttachment (string name) 45 | : base(name) { 46 | } 47 | 48 | public void ComputeWorldPosition (Bone bone, out float ox, out float oy) { 49 | bone.LocalToWorld(this.x, this.y, out ox, out oy); 50 | } 51 | 52 | public float ComputeWorldRotation (Bone bone) { 53 | float cos = MathUtils.CosDeg(rotation), sin = MathUtils.SinDeg(rotation); 54 | float ix = cos * bone.a + sin * bone.b; 55 | float iy = cos * bone.c + sin * bone.d; 56 | return MathUtils.Atan2(iy, ix) * MathUtils.RadDeg; 57 | } 58 | 59 | public override Attachment Copy () { 60 | PointAttachment copy = new PointAttachment(this.Name); 61 | copy.x = x; 62 | copy.y = y; 63 | copy.rotation = rotation; 64 | return copy; 65 | } 66 | } 67 | } 68 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/BlendMode.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine { 31 | public enum BlendMode { 32 | Normal, Additive, Multiply, Screen 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/ConstraintData.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | using System.Collections.Generic; 32 | 33 | namespace Spine 34 | { 35 | /// The base class for all constraint datas. 36 | public abstract class ConstraintData { 37 | internal readonly string name; 38 | internal int order; 39 | internal bool skinRequired; 40 | 41 | public ConstraintData (string name) { 42 | if (name == null) throw new ArgumentNullException("name", "name cannot be null."); 43 | this.name = name; 44 | } 45 | 46 | /// The constraint's name, which is unique across all constraints in the skeleton of the same type. 47 | public string Name { get { return name; } } 48 | 49 | ///The ordinal of this constraint for the order a skeleton's constraints will be applied by 50 | /// . 51 | public int Order { get { return order; } set { order = value; } } 52 | 53 | ///When true, only updates this constraint if the contains 54 | /// this constraint. 55 | /// 56 | public bool SkinRequired { get { return skinRequired; } set { skinRequired = value; } } 57 | 58 | override public string ToString () { 59 | return name; 60 | } 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/Event.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | /// Stores the current pose values for an Event. 34 | public class Event { 35 | internal readonly EventData data; 36 | internal readonly float time; 37 | internal int intValue; 38 | internal float floatValue; 39 | internal string stringValue; 40 | internal float volume; 41 | internal float balance; 42 | 43 | public EventData Data { get { return data; } } 44 | /// The animation time this event was keyed. 45 | public float Time { get { return time; } } 46 | 47 | public int Int { get { return intValue; } set { intValue = value; } } 48 | public float Float { get { return floatValue; } set { floatValue = value; } } 49 | public string String { get { return stringValue; } set { stringValue = value; } } 50 | 51 | public float Volume { get { return volume; } set { volume = value; } } 52 | public float Balance { get { return balance; } set { balance = value; } } 53 | 54 | public Event (float time, EventData data) { 55 | if (data == null) throw new ArgumentNullException("data", "data cannot be null."); 56 | this.time = time; 57 | this.data = data; 58 | } 59 | 60 | override public string ToString () { 61 | return this.data.Name; 62 | } 63 | } 64 | } 65 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/EventData.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | /// Stores the setup pose values for an Event. 34 | public class EventData { 35 | internal string name; 36 | 37 | /// The name of the event, which is unique across all events in the skeleton. 38 | public string Name { get { return name; } } 39 | public int Int { get; set; } 40 | public float Float { get; set; } 41 | public string @String { get; set; } 42 | 43 | public string AudioPath { get; set; } 44 | public float Volume { get; set; } 45 | public float Balance { get; set; } 46 | 47 | public EventData (string name) { 48 | if (name == null) throw new ArgumentNullException("name", "name cannot be null."); 49 | this.name = name; 50 | } 51 | 52 | override public string ToString () { 53 | return Name; 54 | } 55 | } 56 | } 57 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/IUpdatable.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine { 31 | 32 | ///The interface for items updated by . 33 | public interface IUpdatable { 34 | void Update (); 35 | 36 | ///Returns false when this item has not been updated because a skin is required and the active 37 | /// skin does not contain this item. 38 | /// 39 | /// 40 | bool Active { get; } 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/PathConstraintData.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | public class PathConstraintData : ConstraintData { 34 | internal ExposedList bones = new ExposedList(); 35 | internal SlotData target; 36 | internal PositionMode positionMode; 37 | internal SpacingMode spacingMode; 38 | internal RotateMode rotateMode; 39 | internal float offsetRotation; 40 | internal float position, spacing, rotateMix, translateMix; 41 | 42 | public PathConstraintData (string name) : base(name) { 43 | } 44 | 45 | public ExposedList Bones { get { return bones; } } 46 | public SlotData Target { get { return target; } set { target = value; } } 47 | public PositionMode PositionMode { get { return positionMode; } set { positionMode = value; } } 48 | public SpacingMode SpacingMode { get { return spacingMode; } set { spacingMode = value; } } 49 | public RotateMode RotateMode { get { return rotateMode; } set { rotateMode = value; } } 50 | public float OffsetRotation { get { return offsetRotation; } set { offsetRotation = value; } } 51 | public float Position { get { return position; } set { position = value; } } 52 | public float Spacing { get { return spacing; } set { spacing = value; } } 53 | public float RotateMix { get { return rotateMix; } set { rotateMix = value; } } 54 | public float TranslateMix { get { return translateMix; } set { translateMix = value; } } 55 | } 56 | 57 | public enum PositionMode { 58 | Fixed, Percent 59 | } 60 | 61 | public enum SpacingMode { 62 | Length, Fixed, Percent 63 | } 64 | 65 | public enum RotateMode { 66 | Tangent, Chain, ChainScale 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/SlotData.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | public class SlotData { 34 | internal int index; 35 | internal string name; 36 | internal BoneData boneData; 37 | internal float r = 1, g = 1, b = 1, a = 1; 38 | internal float r2 = 0, g2 = 0, b2 = 0; 39 | internal bool hasSecondColor = false; 40 | internal string attachmentName; 41 | internal BlendMode blendMode; 42 | 43 | /// The index of the slot in . 44 | public int Index { get { return index; } } 45 | /// The name of the slot, which is unique across all slots in the skeleton. 46 | public string Name { get { return name; } } 47 | /// The bone this slot belongs to. 48 | public BoneData BoneData { get { return boneData; } } 49 | public float R { get { return r; } set { r = value; } } 50 | public float G { get { return g; } set { g = value; } } 51 | public float B { get { return b; } set { b = value; } } 52 | public float A { get { return a; } set { a = value; } } 53 | 54 | public float R2 { get { return r2; } set { r2 = value; } } 55 | public float G2 { get { return g2; } set { g2 = value; } } 56 | public float B2 { get { return b2; } set { b2 = value; } } 57 | public bool HasSecondColor { get { return hasSecondColor; } set { hasSecondColor = value; } } 58 | 59 | /// The name of the attachment that is visible for this slot in the setup pose, or null if no attachment is visible. 60 | public String AttachmentName { get { return attachmentName; } set { attachmentName = value; } } 61 | /// The blend mode for drawing the slot's attachment. 62 | public BlendMode BlendMode { get { return blendMode; } set { blendMode = value; } } 63 | 64 | public SlotData (int index, String name, BoneData boneData) { 65 | if (index < 0) throw new ArgumentException ("index must be >= 0.", "index"); 66 | if (name == null) throw new ArgumentNullException("name", "name cannot be null."); 67 | if (boneData == null) throw new ArgumentNullException("boneData", "boneData cannot be null."); 68 | this.index = index; 69 | this.name = name; 70 | this.boneData = boneData; 71 | } 72 | 73 | override public string ToString () { 74 | return name; 75 | } 76 | } 77 | } 78 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-csharp/TransformConstraintData.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | 32 | namespace Spine { 33 | public class TransformConstraintData : ConstraintData { 34 | internal ExposedList bones = new ExposedList(); 35 | internal BoneData target; 36 | internal float rotateMix, translateMix, scaleMix, shearMix; 37 | internal float offsetRotation, offsetX, offsetY, offsetScaleX, offsetScaleY, offsetShearY; 38 | internal bool relative, local; 39 | 40 | public ExposedList Bones { get { return bones; } } 41 | public BoneData Target { get { return target; } set { target = value; } } 42 | public float RotateMix { get { return rotateMix; } set { rotateMix = value; } } 43 | public float TranslateMix { get { return translateMix; } set { translateMix = value; } } 44 | public float ScaleMix { get { return scaleMix; } set { scaleMix = value; } } 45 | public float ShearMix { get { return shearMix; } set { shearMix = value; } } 46 | 47 | public float OffsetRotation { get { return offsetRotation; } set { offsetRotation = value; } } 48 | public float OffsetX { get { return offsetX; } set { offsetX = value; } } 49 | public float OffsetY { get { return offsetY; } set { offsetY = value; } } 50 | public float OffsetScaleX { get { return offsetScaleX; } set { offsetScaleX = value; } } 51 | public float OffsetScaleY { get { return offsetScaleY; } set { offsetScaleY = value; } } 52 | public float OffsetShearY { get { return offsetShearY; } set { offsetShearY = value; } } 53 | 54 | public bool Relative { get { return relative; } set { relative = value; } } 55 | public bool Local { get { return local; } set { local = value; } } 56 | 57 | public TransformConstraintData (string name) : base(name) { 58 | } 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity.asmdef: -------------------------------------------------------------------------------- 1 | { 2 | "name": "spine-unity", 3 | "references": [] 4 | } 5 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Asset Types/AnimationReferenceAsset.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | #define AUTOINIT_SPINEREFERENCE 31 | 32 | using UnityEngine; 33 | 34 | namespace Spine.Unity { 35 | [CreateAssetMenu(menuName = "Spine/Animation Reference Asset", order = 100)] 36 | public class AnimationReferenceAsset : ScriptableObject, IHasSkeletonDataAsset { 37 | const bool QuietSkeletonData = true; 38 | 39 | [SerializeField] protected SkeletonDataAsset skeletonDataAsset; 40 | [SerializeField, SpineAnimation] protected string animationName; 41 | private Animation animation; 42 | 43 | public SkeletonDataAsset SkeletonDataAsset { get { return skeletonDataAsset; } } 44 | 45 | public Animation Animation { 46 | get { 47 | #if AUTOINIT_SPINEREFERENCE 48 | if (animation == null) 49 | Initialize(); 50 | #endif 51 | 52 | return animation; 53 | } 54 | } 55 | 56 | public void Initialize () { 57 | if (skeletonDataAsset == null) return; 58 | this.animation = skeletonDataAsset.GetSkeletonData(AnimationReferenceAsset.QuietSkeletonData).FindAnimation(animationName); 59 | if (this.animation == null) Debug.LogWarningFormat("Animation '{0}' not found in SkeletonData : {1}.", animationName, skeletonDataAsset.name); 60 | } 61 | 62 | public static implicit operator Animation (AnimationReferenceAsset asset) { 63 | return asset.Animation; 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Asset Types/AtlasAssetBase.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System.Collections; 31 | using System.Collections.Generic; 32 | using UnityEngine; 33 | 34 | namespace Spine.Unity { 35 | public abstract class AtlasAssetBase : ScriptableObject { 36 | public abstract Material PrimaryMaterial { get; } 37 | public abstract IEnumerable Materials { get; } 38 | public abstract int MaterialCount { get; } 39 | 40 | public abstract bool IsLoaded { get; } 41 | public abstract void Clear (); 42 | public abstract Atlas GetAtlas (); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Asset Types/EventDataReferenceAsset.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | #define AUTOINIT_SPINEREFERENCE 31 | 32 | using UnityEngine; 33 | 34 | namespace Spine.Unity { 35 | [CreateAssetMenu(menuName = "Spine/EventData Reference Asset", order = 100)] 36 | public class EventDataReferenceAsset : ScriptableObject { 37 | const bool QuietSkeletonData = true; 38 | 39 | [SerializeField] protected SkeletonDataAsset skeletonDataAsset; 40 | [SerializeField, SpineEvent(dataField: "skeletonDataAsset")] protected string eventName; 41 | 42 | EventData eventData; 43 | public EventData EventData { 44 | get { 45 | #if AUTOINIT_SPINEREFERENCE 46 | if (eventData == null) 47 | Initialize(); 48 | #endif 49 | return eventData; 50 | } 51 | } 52 | 53 | public void Initialize () { 54 | if (skeletonDataAsset == null) 55 | return; 56 | this.eventData = skeletonDataAsset.GetSkeletonData(EventDataReferenceAsset.QuietSkeletonData).FindEvent(eventName); 57 | if (this.eventData == null) 58 | Debug.LogWarningFormat("Event Data '{0}' not found in SkeletonData : {1}.", eventName, skeletonDataAsset.name); 59 | } 60 | 61 | public static implicit operator EventData (EventDataReferenceAsset asset) { 62 | return asset.EventData; 63 | } 64 | } 65 | } 66 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Asset Types/RegionlessAttachmentLoader.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System; 31 | using UnityEngine; 32 | 33 | namespace Spine.Unity { 34 | 35 | public class RegionlessAttachmentLoader : AttachmentLoader { 36 | 37 | static AtlasRegion emptyRegion; 38 | static AtlasRegion EmptyRegion { 39 | get { 40 | if (emptyRegion == null) { 41 | emptyRegion = new AtlasRegion { 42 | name = "Empty AtlasRegion", 43 | page = new AtlasPage { 44 | name = "Empty AtlasPage", 45 | rendererObject = new Material(Shader.Find("Spine/Special/HiddenPass")) { name = "NoRender Material" } 46 | } 47 | }; 48 | } 49 | return emptyRegion; 50 | } 51 | } 52 | 53 | public RegionAttachment NewRegionAttachment (Skin skin, string name, string path) { 54 | RegionAttachment attachment = new RegionAttachment(name) { 55 | RendererObject = EmptyRegion 56 | }; 57 | return attachment; 58 | } 59 | 60 | public MeshAttachment NewMeshAttachment (Skin skin, string name, string path) { 61 | MeshAttachment attachment = new MeshAttachment(name) { 62 | RendererObject = EmptyRegion 63 | }; 64 | return attachment; 65 | } 66 | 67 | public BoundingBoxAttachment NewBoundingBoxAttachment (Skin skin, string name) { 68 | return new BoundingBoxAttachment(name); 69 | } 70 | 71 | public PathAttachment NewPathAttachment (Skin skin, string name) { 72 | return new PathAttachment(name); 73 | } 74 | 75 | public PointAttachment NewPointAttachment (Skin skin, string name) { 76 | return new PointAttachment(name); 77 | } 78 | 79 | public ClippingAttachment NewClippingAttachment (Skin skin, string name) { 80 | return new ClippingAttachment(name); 81 | } 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Asset Types/SkeletonDataModifierAsset.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using System.Collections; 31 | using System.Collections.Generic; 32 | using UnityEngine; 33 | 34 | namespace Spine.Unity { 35 | /// Can be stored by SkeletonDataAsset to automatically apply modifications to loaded SkeletonData. 36 | public abstract class SkeletonDataModifierAsset : ScriptableObject { 37 | public abstract void Apply (SkeletonData skeletonData); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | 32 | namespace Spine.Unity { 33 | 34 | /// 35 | /// Utility component to support flipping of hinge chains (chains of HingeJoint objects) along with the parent skeleton. 36 | /// 37 | /// Note: This component is automatically attached when calling "Create Hinge Chain" at . 38 | /// 39 | [RequireComponent(typeof(Rigidbody))] 40 | public class FollowLocationRigidbody : MonoBehaviour { 41 | 42 | public Transform reference; 43 | Rigidbody ownRigidbody; 44 | 45 | private void Awake () { 46 | ownRigidbody = this.GetComponent(); 47 | } 48 | 49 | void FixedUpdate () { 50 | ownRigidbody.rotation = reference.rotation; 51 | ownRigidbody.position = reference.position; 52 | } 53 | } 54 | } 55 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/FollowLocationRigidbody2D.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | 32 | namespace Spine.Unity { 33 | 34 | /// 35 | /// Utility component to support flipping of hinge chains (chains of HingeJoint objects) along with the parent skeleton. 36 | /// 37 | /// Note: This component is automatically attached when calling "Create Hinge Chain" at . 38 | /// 39 | [RequireComponent(typeof(Rigidbody2D))] 40 | public class FollowLocationRigidbody2D : MonoBehaviour { 41 | 42 | public Transform reference; 43 | public bool followFlippedX; 44 | Rigidbody2D ownRigidbody; 45 | 46 | private void Awake () { 47 | ownRigidbody = this.GetComponent(); 48 | } 49 | 50 | void FixedUpdate () { 51 | if (followFlippedX) { 52 | ownRigidbody.rotation = ((-reference.rotation.eulerAngles.z + 270f) % 360f) - 90f; 53 | } 54 | else 55 | ownRigidbody.rotation = reference.rotation.eulerAngles.z; 56 | ownRigidbody.position = reference.position; 57 | } 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Components/SkeletonUtility/SkeletonUtilityConstraint.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | #if UNITY_2018_3 || UNITY_2019 || UNITY_2018_3_OR_NEWER 31 | #define NEW_PREFAB_SYSTEM 32 | #endif 33 | 34 | using UnityEngine; 35 | 36 | namespace Spine.Unity { 37 | 38 | #if NEW_PREFAB_SYSTEM 39 | [ExecuteAlways] 40 | #else 41 | [ExecuteInEditMode] 42 | #endif 43 | [RequireComponent(typeof(SkeletonUtilityBone))] 44 | [HelpURL("http://esotericsoftware.com/spine-unity#SkeletonUtilityConstraint")] 45 | public abstract class SkeletonUtilityConstraint : MonoBehaviour { 46 | 47 | protected SkeletonUtilityBone bone; 48 | protected SkeletonUtility hierarchy; 49 | 50 | protected virtual void OnEnable () { 51 | bone = GetComponent(); 52 | hierarchy = transform.GetComponentInParent(); 53 | hierarchy.RegisterConstraint(this); 54 | } 55 | 56 | protected virtual void OnDisable () { 57 | hierarchy.UnregisterConstraint(this); 58 | } 59 | 60 | public abstract void DoUpdate (); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/ISkeletonAnimation.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine.Unity { 31 | public enum UpdateMode { 32 | Nothing = 0, 33 | OnlyAnimationStatus, 34 | OnlyEventTimelines = 4, // added as index 4 to keep scene behavior unchanged. 35 | EverythingExceptMesh = 2, 36 | FullUpdate, 37 | //Reserved 4 for OnlyEventTimelines 38 | }; 39 | 40 | public delegate void UpdateBonesDelegate (ISkeletonAnimation animated); 41 | 42 | /// A Spine-Unity Component that animates a Skeleton but not necessarily with a Spine.AnimationState. 43 | public interface ISkeletonAnimation { 44 | event UpdateBonesDelegate UpdateLocal; 45 | event UpdateBonesDelegate UpdateWorld; 46 | event UpdateBonesDelegate UpdateComplete; 47 | Skeleton Skeleton { get; } 48 | } 49 | 50 | /// Holds a reference to a SkeletonDataAsset. 51 | public interface IHasSkeletonDataAsset { 52 | /// Gets the SkeletonDataAsset of the Spine Component. 53 | SkeletonDataAsset SkeletonDataAsset { get; } 54 | } 55 | 56 | /// A Spine-Unity Component that manages a Spine.Skeleton instance, instantiated from a SkeletonDataAsset. 57 | public interface ISkeletonComponent { 58 | /// Gets the SkeletonDataAsset of the Spine Component. 59 | //[System.Obsolete] 60 | SkeletonDataAsset SkeletonDataAsset { get; } 61 | 62 | /// Gets the Spine.Skeleton instance of the Spine Component. This is equivalent to SkeletonRenderer's .skeleton. 63 | Skeleton Skeleton { get; } 64 | } 65 | 66 | /// A Spine-Unity Component that uses a Spine.AnimationState to animate its skeleton. 67 | public interface IAnimationStateComponent { 68 | /// Gets the Spine.AnimationState of the animated Spine Component. This is equivalent to SkeletonAnimation.state. 69 | AnimationState AnimationState { get; } 70 | } 71 | 72 | /// A Spine-Unity Component that holds a reference to a SkeletonRenderer. 73 | public interface IHasSkeletonRenderer { 74 | SkeletonRenderer SkeletonRenderer { get; } 75 | } 76 | 77 | /// A Spine-Unity Component that holds a reference to an ISkeletonComponent. 78 | public interface IHasSkeletonComponent { 79 | ISkeletonComponent SkeletonComponent { get; } 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Materials/SkeletonGraphicDefault.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonGraphicDefault 10 | m_Shader: {fileID: 4800000, guid: fa95b0fb6983c0f40a152e6f9aa82bfb, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _AlphaTex: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _BumpMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailAlbedoMap: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailMask: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _DetailNormalMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _EmissionMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - PixelSnap: 0 63 | - _BumpScale: 1 64 | - _ColorMask: 15 65 | - _Cutoff: 0.5 66 | - _DetailNormalMapScale: 1 67 | - _DstBlend: 0 68 | - _EnableExternalAlpha: 0 69 | - _Glossiness: 0.5 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _Parallax: 0.02 74 | - _SrcBlend: 1 75 | - _Stencil: 0 76 | - _StencilComp: 8 77 | - _StencilOp: 0 78 | - _StencilReadMask: 255 79 | - _StencilWriteMask: 255 80 | - _UVSec: 0 81 | - _UseUIAlphaClip: 0 82 | - _ZWrite: 1 83 | m_Colors: 84 | - _Color: {r: 1, g: 1, b: 1, a: 1} 85 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 86 | - _Flip: {r: 1, g: 1, b: 1, a: 1} 87 | - _RendererColor: {r: 1, g: 1, b: 1, a: 1} 88 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Materials/SkeletonGraphicDefaultOutline.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonGraphicDefaultOutline 10 | m_Shader: {fileID: 4800000, guid: 8f5d14d2a7fedb84998c50eb96c8b748, type: 3} 11 | m_ShaderKeywords: _USE8NEIGHBOURHOOD_ON 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _AlphaTex: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _BumpMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailAlbedoMap: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailMask: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _DetailNormalMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _EmissionMap: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MainTex: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _MetallicGlossMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _OcclusionMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | - _ParallaxMap: 58 | m_Texture: {fileID: 0} 59 | m_Scale: {x: 1, y: 1} 60 | m_Offset: {x: 0, y: 0} 61 | m_Floats: 62 | - PixelSnap: 0 63 | - _BumpScale: 1 64 | - _ColorMask: 15 65 | - _Cutoff: 0.5 66 | - _DetailNormalMapScale: 1 67 | - _DstBlend: 0 68 | - _EnableExternalAlpha: 0 69 | - _Glossiness: 0.5 70 | - _Metallic: 0 71 | - _Mode: 0 72 | - _OcclusionStrength: 1 73 | - _OutlineMipLevel: 0 74 | - _OutlineReferenceTexWidth: 1024 75 | - _OutlineSmoothness: 1 76 | - _OutlineWidth: 3 77 | - _Parallax: 0.02 78 | - _SrcBlend: 1 79 | - _Stencil: 0 80 | - _StencilComp: 8 81 | - _StencilOp: 0 82 | - _StencilReadMask: 255 83 | - _StencilWriteMask: 255 84 | - _StraightAlphaInput: 0 85 | - _ThresholdEnd: 0.25 86 | - _UVSec: 0 87 | - _Use8Neighbourhood: 1 88 | - _UseUIAlphaClip: 0 89 | - _ZWrite: 1 90 | m_Colors: 91 | - _Color: {r: 1, g: 1, b: 1, a: 1} 92 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 93 | - _Flip: {r: 1, g: 1, b: 1, a: 1} 94 | - _OutlineColor: {r: 1, g: 1, b: 0, a: 1} 95 | - _RendererColor: {r: 1, g: 1, b: 1, a: 1} 96 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Materials/SkeletonGraphicTintBlack.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonGraphicTintBlack 10 | m_Shader: {fileID: 4800000, guid: f64c7bc238bb2c246b8ca1912b2b6b9c, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_CustomRenderQueue: -1 15 | stringTagMap: {} 16 | disabledShaderPasses: [] 17 | m_SavedProperties: 18 | serializedVersion: 3 19 | m_TexEnvs: 20 | - _BumpMap: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - _DetailAlbedoMap: 25 | m_Texture: {fileID: 0} 26 | m_Scale: {x: 1, y: 1} 27 | m_Offset: {x: 0, y: 0} 28 | - _DetailMask: 29 | m_Texture: {fileID: 0} 30 | m_Scale: {x: 1, y: 1} 31 | m_Offset: {x: 0, y: 0} 32 | - _DetailNormalMap: 33 | m_Texture: {fileID: 0} 34 | m_Scale: {x: 1, y: 1} 35 | m_Offset: {x: 0, y: 0} 36 | - _EmissionMap: 37 | m_Texture: {fileID: 0} 38 | m_Scale: {x: 1, y: 1} 39 | m_Offset: {x: 0, y: 0} 40 | - _MainTex: 41 | m_Texture: {fileID: 0} 42 | m_Scale: {x: 1, y: 1} 43 | m_Offset: {x: 0, y: 0} 44 | - _MetallicGlossMap: 45 | m_Texture: {fileID: 0} 46 | m_Scale: {x: 1, y: 1} 47 | m_Offset: {x: 0, y: 0} 48 | - _OcclusionMap: 49 | m_Texture: {fileID: 0} 50 | m_Scale: {x: 1, y: 1} 51 | m_Offset: {x: 0, y: 0} 52 | - _ParallaxMap: 53 | m_Texture: {fileID: 0} 54 | m_Scale: {x: 1, y: 1} 55 | m_Offset: {x: 0, y: 0} 56 | m_Floats: 57 | - _BumpScale: 1 58 | - _ColorMask: 15 59 | - _Cutoff: 0.5 60 | - _DetailNormalMapScale: 1 61 | - _DstBlend: 0 62 | - _Glossiness: 0.5 63 | - _Metallic: 0 64 | - _Mode: 0 65 | - _OcclusionStrength: 1 66 | - _Parallax: 0.02 67 | - _SrcBlend: 1 68 | - _Stencil: 0 69 | - _StencilComp: 8 70 | - _StencilOp: 0 71 | - _StencilReadMask: 255 72 | - _StencilWriteMask: 255 73 | - _UVSec: 0 74 | - _UseUIAlphaClip: 0 75 | - _ZWrite: 1 76 | m_Colors: 77 | - _Black: {r: 0, g: 0, b: 0, a: 0} 78 | - _Color: {r: 1, g: 1, b: 1, a: 1} 79 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 80 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Materials/SkeletonGraphicTintBlackOutline.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonGraphicTintBlackOutline 10 | m_Shader: {fileID: 4800000, guid: d55d64dd09c46af40a319933a62fa1b2, type: 3} 11 | m_ShaderKeywords: _USE8NEIGHBOURHOOD_ON 12 | m_LightmapFlags: 5 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - _BumpMap: 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _DetailAlbedoMap: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | - _DetailMask: 30 | m_Texture: {fileID: 0} 31 | m_Scale: {x: 1, y: 1} 32 | m_Offset: {x: 0, y: 0} 33 | - _DetailNormalMap: 34 | m_Texture: {fileID: 0} 35 | m_Scale: {x: 1, y: 1} 36 | m_Offset: {x: 0, y: 0} 37 | - _EmissionMap: 38 | m_Texture: {fileID: 0} 39 | m_Scale: {x: 1, y: 1} 40 | m_Offset: {x: 0, y: 0} 41 | - _MainTex: 42 | m_Texture: {fileID: 0} 43 | m_Scale: {x: 1, y: 1} 44 | m_Offset: {x: 0, y: 0} 45 | - _MetallicGlossMap: 46 | m_Texture: {fileID: 0} 47 | m_Scale: {x: 1, y: 1} 48 | m_Offset: {x: 0, y: 0} 49 | - _OcclusionMap: 50 | m_Texture: {fileID: 0} 51 | m_Scale: {x: 1, y: 1} 52 | m_Offset: {x: 0, y: 0} 53 | - _ParallaxMap: 54 | m_Texture: {fileID: 0} 55 | m_Scale: {x: 1, y: 1} 56 | m_Offset: {x: 0, y: 0} 57 | m_Floats: 58 | - _BumpScale: 1 59 | - _ColorMask: 15 60 | - _Cutoff: 0.5 61 | - _DetailNormalMapScale: 1 62 | - _DstBlend: 0 63 | - _Glossiness: 0.5 64 | - _Metallic: 0 65 | - _Mode: 0 66 | - _OcclusionStrength: 1 67 | - _OutlineMipLevel: 0 68 | - _OutlineReferenceTexWidth: 1024 69 | - _OutlineSmoothness: 1 70 | - _OutlineWidth: 3 71 | - _Parallax: 0.02 72 | - _SrcBlend: 1 73 | - _Stencil: 0 74 | - _StencilComp: 8 75 | - _StencilOp: 0 76 | - _StencilReadMask: 255 77 | - _StencilWriteMask: 255 78 | - _StraightAlphaInput: 0 79 | - _ThresholdEnd: 0.25 80 | - _UVSec: 0 81 | - _Use8Neighbourhood: 1 82 | - _UseUIAlphaClip: 0 83 | - _ZWrite: 1 84 | m_Colors: 85 | - _Black: {r: 0, g: 0, b: 0, a: 0} 86 | - _Color: {r: 1, g: 1, b: 1, a: 1} 87 | - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} 88 | - _OutlineColor: {r: 1, g: 1, b: 0, a: 1} 89 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Mesh Generation/DoubleBuffered.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | namespace Spine.Unity { 31 | public class DoubleBuffered where T : new() { 32 | readonly T a = new T(); 33 | readonly T b = new T(); 34 | bool usingA; 35 | 36 | public T GetCurrent () { 37 | return usingA ? a : b; 38 | } 39 | 40 | public T GetNext () { 41 | usingA = !usingA; 42 | return usingA ? a : b; 43 | } 44 | } 45 | } 46 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Mesh Generation/SpineMesh.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | // Not for optimization. Do not disable. 31 | #define SPINE_TRIANGLECHECK // Avoid calling SetTriangles at the cost of checking for mesh differences (vertex counts, memberwise attachment list compare) every frame. 32 | //#define SPINE_DEBUG 33 | 34 | using UnityEngine; 35 | using System; 36 | using System.Collections.Generic; 37 | 38 | namespace Spine.Unity { 39 | public static class SpineMesh { 40 | internal const HideFlags MeshHideflags = HideFlags.DontSaveInBuild | HideFlags.DontSaveInEditor; 41 | 42 | /// Factory method for creating a new mesh for use in Spine components. This can be called in field initializers. 43 | public static Mesh NewSkeletonMesh () { 44 | var m = new Mesh(); 45 | m.MarkDynamic(); 46 | m.name = "Skeleton Mesh"; 47 | m.hideFlags = SpineMesh.MeshHideflags; 48 | return m; 49 | } 50 | } 51 | 52 | /// Instructions for how to generate a mesh or submesh: "Render this skeleton's slots: start slot, up to but not including endSlot, using this material." 53 | public struct SubmeshInstruction { 54 | public Skeleton skeleton; 55 | public int startSlot; 56 | public int endSlot; 57 | public Material material; 58 | 59 | public bool forceSeparate; 60 | public int preActiveClippingSlotSource; 61 | 62 | #if SPINE_TRIANGLECHECK 63 | // Cached values because they are determined in the process of generating instructions, 64 | // but could otherwise be pulled from accessing attachments, checking materials and counting tris and verts. 65 | public int rawTriangleCount; 66 | public int rawVertexCount; 67 | public int rawFirstVertexIndex; 68 | public bool hasClipping; 69 | #endif 70 | 71 | /// The number of slots in this SubmeshInstruction's range. Not necessarily the number of attachments. 72 | public int SlotCount { get { return endSlot - startSlot; } } 73 | 74 | public override string ToString () { 75 | return 76 | string.Format("[SubmeshInstruction: slots {0} to {1}. (Material){2}. preActiveClippingSlotSource:{3}]", 77 | startSlot, 78 | endSlot - 1, 79 | material == null ? "" : material.name, 80 | preActiveClippingSlotSource 81 | ); 82 | } 83 | } 84 | } 85 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/BlendModes/Spine-Skeleton-PMA-Additive.shader: -------------------------------------------------------------------------------- 1 | // Spine/Skeleton PMA Screen 2 | // - single color multiply tint 3 | // - unlit 4 | // - Premultiplied alpha Multiply blending 5 | // - No depth, no backface culling, no fog. 6 | // - ShadowCaster pass 7 | 8 | Shader "Spine/Blend Modes/Skeleton PMA Additive" { 9 | Properties { 10 | _Color ("Tint Color", Color) = (1,1,1,1) 11 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} 12 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 13 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 14 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 15 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 16 | 17 | // Outline properties are drawn via custom editor. 18 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 19 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 20 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 21 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 22 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 23 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 24 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 25 | } 26 | 27 | SubShader { 28 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 29 | LOD 100 30 | 31 | Fog { Mode Off } 32 | Cull Off 33 | ZWrite Off 34 | Blend One One 35 | Lighting Off 36 | 37 | Stencil { 38 | Ref[_StencilRef] 39 | Comp[_StencilComp] 40 | Pass Keep 41 | } 42 | 43 | Pass { 44 | Name "Normal" 45 | 46 | CGPROGRAM 47 | #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT 48 | #pragma vertex vert 49 | #pragma fragment frag 50 | #include "UnityCG.cginc" 51 | uniform sampler2D _MainTex; 52 | uniform float4 _Color; 53 | 54 | struct VertexInput { 55 | float4 vertex : POSITION; 56 | float2 uv : TEXCOORD0; 57 | float4 vertexColor : COLOR; 58 | }; 59 | 60 | struct VertexOutput { 61 | float4 pos : SV_POSITION; 62 | float2 uv : TEXCOORD0; 63 | float4 vertexColor : COLOR; 64 | }; 65 | 66 | VertexOutput vert (VertexInput v) { 67 | VertexOutput o; 68 | o.pos = UnityObjectToClipPos(v.vertex); 69 | o.uv = v.uv; 70 | o.vertexColor = v.vertexColor * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor. 71 | return o; 72 | } 73 | 74 | float4 frag (VertexOutput i) : SV_Target { 75 | float4 texColor = tex2D(_MainTex, i.uv); 76 | 77 | #if defined(_STRAIGHT_ALPHA_INPUT) 78 | texColor.rgb *= texColor.a; 79 | #endif 80 | 81 | return (texColor * i.vertexColor); 82 | } 83 | ENDCG 84 | } 85 | 86 | Pass { 87 | Name "Caster" 88 | Tags { "LightMode"="ShadowCaster" } 89 | Offset 1, 1 90 | 91 | ZWrite On 92 | ZTest LEqual 93 | 94 | CGPROGRAM 95 | #pragma vertex vert 96 | #pragma fragment frag 97 | #pragma multi_compile_shadowcaster 98 | #pragma fragmentoption ARB_precision_hint_fastest 99 | #include "UnityCG.cginc" 100 | struct v2f { 101 | V2F_SHADOW_CASTER; 102 | float4 uvAndAlpha : TEXCOORD1; 103 | }; 104 | 105 | uniform float4 _MainTex_ST; 106 | 107 | v2f vert (appdata_base v, float4 vertexColor : COLOR) { 108 | v2f o; 109 | TRANSFER_SHADOW_CASTER(o) 110 | o.uvAndAlpha.xy = TRANSFORM_TEX(v.texcoord, _MainTex); 111 | o.uvAndAlpha.z = 0; 112 | o.uvAndAlpha.a = vertexColor.a; 113 | return o; 114 | } 115 | 116 | uniform sampler2D _MainTex; 117 | uniform fixed _Cutoff; 118 | 119 | float4 frag (v2f i) : SV_Target { 120 | fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy); 121 | clip(texcol.a * i.uvAndAlpha.a - _Cutoff); 122 | SHADOW_CASTER_FRAGMENT(i) 123 | } 124 | ENDCG 125 | } 126 | } 127 | CustomEditor "SpineShaderWithOutlineGUI" 128 | } 129 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-DepthOnlyPass.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SPRITES_DEPTH_ONLY_PASS_INCLUDED 2 | #define SPRITES_DEPTH_ONLY_PASS_INCLUDED 3 | 4 | #include "UnityCG.cginc" 5 | 6 | sampler2D _MainTex; 7 | float _Cutoff; 8 | float _ZWriteOffset; 9 | 10 | struct VertexInput { 11 | float4 positionOS : POSITION; 12 | float2 texcoord : TEXCOORD0; 13 | float4 vertexColor : COLOR; 14 | }; 15 | 16 | struct VertexOutput { 17 | float4 positionCS : SV_POSITION; 18 | float4 texcoordAndAlpha: TEXCOORD0; 19 | }; 20 | 21 | VertexOutput DepthOnlyVertex (VertexInput v) { 22 | VertexOutput o; 23 | o.positionCS = UnityObjectToClipPos(v.positionOS - float4(0, 0, _ZWriteOffset, 0)); 24 | o.texcoordAndAlpha.xy = v.texcoord; 25 | o.texcoordAndAlpha.z = 0; 26 | o.texcoordAndAlpha.a = v.vertexColor.a; 27 | return o; 28 | } 29 | 30 | float4 DepthOnlyFragment (VertexOutput input) : SV_Target{ 31 | float4 texColor = tex2D(_MainTex, input.texcoordAndAlpha.rg); 32 | 33 | #if defined(_STRAIGHT_ALPHA_INPUT) 34 | texColor.rgb *= texColor.a; 35 | #endif 36 | 37 | clip(texColor.a * input.texcoordAndAlpha.a - _Cutoff); 38 | return 0; 39 | } 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-Outline-Common.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SPINE_OUTLINE_COMMON_INCLUDED 2 | #define SPINE_OUTLINE_COMMON_INCLUDED 3 | 4 | float4 computeOutlinePixel(sampler2D mainTexture, float2 mainTextureTexelSize, 5 | float2 uv, float vertexColorAlpha, 6 | float OutlineWidth, float OutlineReferenceTexWidth, float OutlineMipLevel, 7 | float OutlineSmoothness, float ThresholdEnd, float4 OutlineColor) { 8 | 9 | float4 texColor = fixed4(0, 0, 0, 0); 10 | 11 | float outlineWidthCompensated = OutlineWidth / (OutlineReferenceTexWidth * mainTextureTexelSize.x); 12 | float xOffset = mainTextureTexelSize.x * outlineWidthCompensated; 13 | float yOffset = mainTextureTexelSize.y * outlineWidthCompensated; 14 | float xOffsetDiagonal = mainTextureTexelSize.x * outlineWidthCompensated * 0.7; 15 | float yOffsetDiagonal = mainTextureTexelSize.y * outlineWidthCompensated * 0.7; 16 | 17 | float pixelCenter = tex2D(mainTexture, uv).a; 18 | 19 | float4 uvCenterWithLod = float4(uv, 0, OutlineMipLevel); 20 | float pixelTop = tex2Dlod(mainTexture, uvCenterWithLod + float4(0, yOffset, 0, 0)).a; 21 | float pixelBottom = tex2Dlod(mainTexture, uvCenterWithLod + float4(0, -yOffset, 0, 0)).a; 22 | float pixelLeft = tex2Dlod(mainTexture, uvCenterWithLod + float4(-xOffset, 0, 0, 0)).a; 23 | float pixelRight = tex2Dlod(mainTexture, uvCenterWithLod + float4(xOffset, 0, 0, 0)).a; 24 | #if _USE8NEIGHBOURHOOD_ON 25 | float numSamples = 8; 26 | float pixelTopLeft = tex2Dlod(mainTexture, uvCenterWithLod + float4(-xOffsetDiagonal, yOffsetDiagonal, 0, 0)).a; 27 | float pixelTopRight = tex2Dlod(mainTexture, uvCenterWithLod + float4(xOffsetDiagonal, yOffsetDiagonal, 0, 0)).a; 28 | float pixelBottomLeft = tex2Dlod(mainTexture, uvCenterWithLod + float4(-xOffsetDiagonal, -yOffsetDiagonal, 0, 0)).a; 29 | float pixelBottomRight = tex2Dlod(mainTexture, uvCenterWithLod + float4(xOffsetDiagonal, -yOffsetDiagonal, 0, 0)).a; 30 | float average = (pixelTop + pixelBottom + pixelLeft + pixelRight + 31 | pixelTopLeft + pixelTopRight + pixelBottomLeft + pixelBottomRight) 32 | * vertexColorAlpha / numSamples; 33 | #else // 4 neighbourhood 34 | float numSamples = 1; 35 | float average = (pixelTop + pixelBottom + pixelLeft + pixelRight) * vertexColorAlpha / numSamples; 36 | #endif 37 | float thresholdStart = ThresholdEnd * (1.0 - OutlineSmoothness); 38 | float outlineAlpha = saturate((average - thresholdStart) / (ThresholdEnd - thresholdStart)) - pixelCenter; 39 | return lerp(texColor, OutlineColor, outlineAlpha); 40 | } 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-Skeleton-Lit-Common-Shadow.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SKELETON_LIT_COMMON_SHADOW_INCLUDED 2 | #define SKELETON_LIT_COMMON_SHADOW_INCLUDED 3 | 4 | #include "UnityCG.cginc" 5 | struct v2f { 6 | V2F_SHADOW_CASTER; 7 | float4 uvAndAlpha : TEXCOORD1; 8 | }; 9 | 10 | uniform float4 _MainTex_ST; 11 | 12 | v2f vertShadow(appdata_base v, float4 vertexColor : COLOR) { 13 | v2f o; 14 | TRANSFER_SHADOW_CASTER(o) 15 | o.uvAndAlpha.xy = TRANSFORM_TEX(v.texcoord, _MainTex); 16 | o.uvAndAlpha.z = 0; 17 | o.uvAndAlpha.a = vertexColor.a; 18 | return o; 19 | } 20 | 21 | uniform sampler2D _MainTex; 22 | uniform fixed SHADOW_CUTOFF; 23 | 24 | float4 fragShadow (v2f i) : SV_Target { 25 | fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy); 26 | clip(texcol.a * i.uvAndAlpha.a - SHADOW_CUTOFF); 27 | SHADOW_CASTER_FRAGMENT(i) 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-Skeleton-Lit-Common.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SKELETON_LIT_COMMON_INCLUDED 2 | #define SKELETON_LIT_COMMON_INCLUDED 3 | 4 | #include "UnityCG.cginc" 5 | 6 | // ES2.0/WebGL/3DS can not do loops with non-constant-expression iteration counts :( 7 | #if defined(SHADER_API_GLES) 8 | #define LIGHT_LOOP_LIMIT 8 9 | #elif defined(SHADER_API_N3DS) 10 | #define LIGHT_LOOP_LIMIT 4 11 | #else 12 | #define LIGHT_LOOP_LIMIT unity_VertexLightParams.x 13 | #endif 14 | 15 | 16 | //////////////////////////////////////// 17 | // Alpha Clipping 18 | // 19 | 20 | #if defined(_ALPHA_CLIP) 21 | uniform fixed _Cutoff; 22 | #define ALPHA_CLIP(pixel, color) clip((pixel.a * color.a) - _Cutoff); 23 | #else 24 | #define ALPHA_CLIP(pixel, color) 25 | #endif 26 | 27 | half3 computeLighting (int idx, half3 dirToLight, half3 eyeNormal, half4 diffuseColor, half atten) { 28 | half NdotL = max(dot(eyeNormal, dirToLight), 0.0); 29 | // diffuse 30 | half3 color = NdotL * diffuseColor.rgb * unity_LightColor[idx].rgb; 31 | return color * atten; 32 | } 33 | 34 | half3 computeOneLight (int idx, float3 eyePosition, half3 eyeNormal, half4 diffuseColor) { 35 | float3 dirToLight = unity_LightPosition[idx].xyz; 36 | half att = 1.0; 37 | 38 | #if defined(POINT) || defined(SPOT) 39 | dirToLight -= eyePosition * unity_LightPosition[idx].w; 40 | 41 | // distance attenuation 42 | float distSqr = dot(dirToLight, dirToLight); 43 | att /= (1.0 + unity_LightAtten[idx].z * distSqr); 44 | if (unity_LightPosition[idx].w != 0 && distSqr > unity_LightAtten[idx].w) att = 0.0; // set to 0 if outside of range 45 | distSqr = max(distSqr, 0.000001); // don't produce NaNs if some vertex position overlaps with the light 46 | dirToLight *= rsqrt(distSqr); 47 | #if defined(SPOT) 48 | 49 | // spot angle attenuation 50 | half rho = max(dot(dirToLight, unity_SpotDirection[idx].xyz), 0.0); 51 | half spotAtt = (rho - unity_LightAtten[idx].x) * unity_LightAtten[idx].y; 52 | att *= saturate(spotAtt); 53 | #endif 54 | #endif 55 | 56 | att *= 0.5; // passed in light colors are 2x brighter than what used to be in FFP 57 | return min (computeLighting (idx, dirToLight, eyeNormal, diffuseColor, att), 1.0); 58 | } 59 | 60 | int4 unity_VertexLightParams; // x: light count, y: zero, z: one (y/z needed by d3d9 vs loop instruction) 61 | 62 | struct appdata { 63 | float3 pos : POSITION; 64 | float3 normal : NORMAL; 65 | half4 color : COLOR; 66 | float2 uv0 : TEXCOORD0; 67 | UNITY_VERTEX_INPUT_INSTANCE_ID 68 | }; 69 | 70 | struct VertexOutput { 71 | fixed4 color : COLOR0; 72 | float2 uv0 : TEXCOORD0; 73 | float4 pos : SV_POSITION; 74 | UNITY_VERTEX_OUTPUT_STEREO 75 | }; 76 | 77 | VertexOutput vert (appdata v) { 78 | VertexOutput o; 79 | UNITY_SETUP_INSTANCE_ID(v); 80 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); 81 | 82 | half4 color = v.color; 83 | float3 eyePos = UnityObjectToViewPos(float4(v.pos, 1)).xyz; //mul(UNITY_MATRIX_MV, float4(v.pos,1)).xyz; 84 | half3 fixedNormal = half3(0,0,-1); 85 | half3 eyeNormal = normalize(mul((float3x3)UNITY_MATRIX_IT_MV, fixedNormal)); 86 | 87 | #ifdef _DOUBLE_SIDED_LIGHTING 88 | // unfortunately we have to compute the sign here in the vertex shader 89 | // instead of using VFACE in fragment shader stage. 90 | half faceSign = sign(eyeNormal.z); 91 | eyeNormal *= faceSign; 92 | #endif 93 | 94 | // Lights 95 | half3 lcolor = half4(0,0,0,1).rgb + color.rgb * glstate_lightmodel_ambient.rgb; 96 | for (int il = 0; il < LIGHT_LOOP_LIMIT; ++il) { 97 | lcolor += computeOneLight(il, eyePos, eyeNormal, color); 98 | } 99 | 100 | color.rgb = lcolor.rgb; 101 | o.color = saturate(color); 102 | o.uv0 = v.uv0; 103 | o.pos = UnityObjectToClipPos(v.pos); 104 | return o; 105 | } 106 | 107 | sampler2D _MainTex; 108 | 109 | fixed4 frag (VertexOutput i) : SV_Target { 110 | fixed4 tex = tex2D(_MainTex, i.uv0); 111 | ALPHA_CLIP(tex, i.color); 112 | #if defined(_STRAIGHT_ALPHA_INPUT) 113 | tex.rgb *= tex.a; 114 | #endif 115 | fixed4 col = tex * i.color; 116 | col.rgb *= 2; 117 | return col; 118 | } 119 | 120 | #endif 121 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/CGIncludes/Spine-Skeleton-Tint-Common.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SKELETON_TINT_COMMON_INCLUDED 2 | #define SKELETON_TINT_COMMON_INCLUDED 3 | 4 | float4 fragTintedColor(float4 texColor, float3 darkTintColor, float4 lightTintColorPMA, float lightColorAlpha, float darkColorAlpha) { 5 | 6 | float a = texColor.a * lightTintColorPMA.a; 7 | 8 | #if !defined(_STRAIGHT_ALPHA_INPUT) 9 | float3 texDarkColor = (texColor.a - texColor.rgb); 10 | #else 11 | float3 texDarkColor = (1 - texColor.rgb); 12 | #endif 13 | float3 darkColor = texDarkColor * darkTintColor.rgb * lightColorAlpha; 14 | float3 lightColor = texColor.rgb * lightTintColorPMA.rgb; 15 | 16 | float4 fragColor = float4(darkColor + lightColor, a); 17 | #if defined(_STRAIGHT_ALPHA_INPUT) 18 | fragColor.rgb *= texColor.a; 19 | #endif 20 | 21 | #if defined(_DARK_COLOR_ALPHA_ADDITIVE) 22 | fragColor.a = a * (1 - darkColorAlpha); 23 | #endif 24 | return fragColor; 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/BlendModes/Spine-Skeleton-PMA-Additive-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Blend Modes/Skeleton PMA Additive" 2 | 3 | Shader "Spine/Outline/Blend Modes/Skeleton PMA Additive" { 4 | Properties { 5 | _Color ("Tint Color", Color) = (1,1,1,1) 6 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} 7 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 8 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 9 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 10 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 11 | 12 | // Outline properties are drawn via custom editor. 13 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 14 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 15 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 16 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 17 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 18 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 19 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 20 | } 21 | 22 | SubShader { 23 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 24 | LOD 100 25 | 26 | Fog { Mode Off } 27 | Cull Off 28 | ZWrite Off 29 | Blend One One 30 | Lighting Off 31 | 32 | Stencil { 33 | Ref[_StencilRef] 34 | Comp[_StencilComp] 35 | Pass Keep 36 | } 37 | 38 | UsePass "Spine/Outline/Skeleton/OUTLINE" 39 | 40 | UsePass "Spine/Blend Modes/Skeleton PMA Additive/NORMAL" 41 | 42 | UsePass "Spine/Blend Modes/Skeleton PMA Additive/CASTER" 43 | } 44 | FallBack "Spine/Blend Modes/Skeleton PMA Additive" 45 | CustomEditor "SpineShaderWithOutlineGUI" 46 | } 47 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/BlendModes/Spine-Skeleton-PMA-Multiply-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Blend Modes/Skeleton PMA Multiply" 2 | 3 | Shader "Spine/Outline/Blend Modes/Skeleton PMA Multiply" { 4 | Properties { 5 | _Color ("Tint Color", Color) = (1,1,1,1) 6 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} 7 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 8 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 9 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 10 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 11 | 12 | // Outline properties are drawn via custom editor. 13 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 14 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 15 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 16 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 17 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 18 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 19 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 20 | } 21 | 22 | SubShader { 23 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 24 | LOD 100 25 | 26 | Fog { Mode Off } 27 | Cull Off 28 | ZWrite Off 29 | Blend DstColor OneMinusSrcAlpha 30 | Lighting Off 31 | 32 | Stencil { 33 | Ref[_StencilRef] 34 | Comp[_StencilComp] 35 | Pass Keep 36 | } 37 | 38 | UsePass "Spine/Outline/Skeleton/OUTLINE" 39 | 40 | UsePass "Spine/Blend Modes/Skeleton PMA Multiply/NORMAL" 41 | 42 | UsePass "Spine/Blend Modes/Skeleton PMA Multiply/CASTER" 43 | } 44 | FallBack "Spine/Blend Modes/Skeleton PMA Multiply" 45 | CustomEditor "SpineShaderWithOutlineGUI" 46 | } 47 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/BlendModes/Spine-Skeleton-PMA-Screen-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Blend Modes/Skeleton PMA Screen" 2 | 3 | Shader "Spine/Outline/Blend Modes/Skeleton PMA Screen" { 4 | Properties { 5 | _Color ("Tint Color", Color) = (1,1,1,1) 6 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} 7 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 8 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 9 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 10 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 11 | 12 | // Outline properties are drawn via custom editor. 13 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 14 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 15 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 16 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 17 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 18 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 19 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 20 | } 21 | 22 | SubShader { 23 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 24 | LOD 100 25 | 26 | Fog { Mode Off } 27 | Cull Off 28 | ZWrite Off 29 | Blend One OneMinusSrcColor 30 | Lighting Off 31 | 32 | Stencil { 33 | Ref[_StencilRef] 34 | Comp[_StencilComp] 35 | Pass Keep 36 | } 37 | 38 | UsePass "Spine/Outline/Skeleton/OUTLINE" 39 | 40 | UsePass "Spine/Blend Modes/Skeleton PMA Screen/NORMAL" 41 | 42 | UsePass "Spine/Blend Modes/Skeleton PMA Screen/CASTER" 43 | } 44 | FallBack "Spine/Blend Modes/Skeleton PMA Screen" 45 | CustomEditor "SpineShaderWithOutlineGUI" 46 | } 47 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/CGIncludes/Spine-Outline-Pass.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SPINE_OUTLINE_PASS_INCLUDED 2 | #define SPINE_OUTLINE_PASS_INCLUDED 3 | 4 | #include "UnityCG.cginc" 5 | 6 | #ifdef SKELETON_GRAPHIC 7 | #include "UnityUI.cginc" 8 | #endif 9 | 10 | #include "../../CGIncludes/Spine-Outline-Common.cginc" 11 | 12 | sampler2D _MainTex; 13 | 14 | float _OutlineWidth; 15 | float4 _OutlineColor; 16 | float4 _MainTex_TexelSize; 17 | float _ThresholdEnd; 18 | float _OutlineSmoothness; 19 | float _OutlineMipLevel; 20 | int _OutlineReferenceTexWidth; 21 | 22 | #ifdef SKELETON_GRAPHIC 23 | float4 _ClipRect; 24 | #endif 25 | 26 | struct VertexInput { 27 | float4 vertex : POSITION; 28 | float2 uv : TEXCOORD0; 29 | float4 vertexColor : COLOR; 30 | UNITY_VERTEX_INPUT_INSTANCE_ID 31 | }; 32 | 33 | struct VertexOutput { 34 | float4 pos : SV_POSITION; 35 | float2 uv : TEXCOORD0; 36 | float vertexColorAlpha : COLOR; 37 | #ifdef SKELETON_GRAPHIC 38 | float4 worldPosition : TEXCOORD1; 39 | #endif 40 | UNITY_VERTEX_OUTPUT_STEREO 41 | }; 42 | 43 | 44 | #ifdef SKELETON_GRAPHIC 45 | 46 | VertexOutput vertOutlineGraphic(VertexInput v) { 47 | VertexOutput o; 48 | 49 | UNITY_SETUP_INSTANCE_ID(v); 50 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); 51 | 52 | o.worldPosition = v.vertex; 53 | o.pos = UnityObjectToClipPos(o.worldPosition); 54 | o.uv = v.uv; 55 | 56 | #ifdef UNITY_HALF_TEXEL_OFFSET 57 | o.pos.xy += (_ScreenParams.zw - 1.0) * float2(-1, 1); 58 | #endif 59 | 60 | o.vertexColorAlpha = v.vertexColor.a; 61 | return o; 62 | } 63 | 64 | #else // !SKELETON_GRAPHIC 65 | 66 | VertexOutput vertOutline(VertexInput v) { 67 | VertexOutput o; 68 | 69 | UNITY_SETUP_INSTANCE_ID(v); 70 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(o); 71 | 72 | o.pos = UnityObjectToClipPos(v.vertex); 73 | o.uv = v.uv; 74 | o.vertexColorAlpha = v.vertexColor.a; 75 | return o; 76 | } 77 | #endif 78 | 79 | float4 fragOutline(VertexOutput i) : SV_Target { 80 | 81 | float4 texColor = computeOutlinePixel(_MainTex, _MainTex_TexelSize.xy, i.uv, i.vertexColorAlpha, 82 | _OutlineWidth, _OutlineReferenceTexWidth, _OutlineMipLevel, 83 | _OutlineSmoothness, _ThresholdEnd, _OutlineColor); 84 | 85 | #ifdef SKELETON_GRAPHIC 86 | texColor *= UnityGet2DClipping(i.worldPosition.xy, _ClipRect); 87 | #endif 88 | 89 | return texColor; 90 | } 91 | 92 | #endif // SPINE_OUTLINE_PASS_INCLUDED 93 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/SkeletonGraphic" 2 | 3 | Shader "Spine/Outline/SkeletonGraphic" 4 | { 5 | Properties 6 | { 7 | [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 8 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 9 | [Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 0 10 | _Color ("Tint", Color) = (1,1,1,1) 11 | 12 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8 13 | [HideInInspector] _Stencil ("Stencil ID", Float) = 0 14 | [HideInInspector][Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0 15 | [HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255 16 | [HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255 17 | 18 | [HideInInspector] _ColorMask ("Color Mask", Float) = 15 19 | 20 | [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 21 | 22 | // Outline properties are drawn via custom editor. 23 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 24 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 25 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 26 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 27 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 28 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 29 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 30 | } 31 | 32 | SubShader 33 | { 34 | Tags 35 | { 36 | "Queue"="Transparent" 37 | "IgnoreProjector"="True" 38 | "RenderType"="Transparent" 39 | "PreviewType"="Plane" 40 | "CanUseSpriteAtlas"="True" 41 | } 42 | 43 | Stencil 44 | { 45 | Ref [_Stencil] 46 | Comp [_StencilComp] 47 | Pass [_StencilOp] 48 | ReadMask [_StencilReadMask] 49 | WriteMask [_StencilWriteMask] 50 | } 51 | 52 | Cull Off 53 | Lighting Off 54 | ZWrite Off 55 | ZTest [unity_GUIZTestMode] 56 | Fog { Mode Off } 57 | Blend One OneMinusSrcAlpha 58 | ColorMask [_ColorMask] 59 | 60 | Pass { 61 | Name "Outline" 62 | CGPROGRAM 63 | #pragma vertex vertOutlineGraphic 64 | #pragma fragment fragOutline 65 | #define SKELETON_GRAPHIC 66 | #pragma shader_feature _ _USE8NEIGHBOURHOOD_ON 67 | #include "../CGIncludes/Spine-Outline-Pass.cginc" 68 | ENDCG 69 | } 70 | 71 | UsePass "Spine/SkeletonGraphic/NORMAL" 72 | } 73 | FallBack "Spine/SkeletonGraphic" 74 | CustomEditor "SpineShaderWithOutlineGUI" 75 | } 76 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/SkeletonGraphic/Spine-SkeletonGraphic-TintBlack-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/SkeletonGraphic Tint Black" 2 | 3 | Shader "Spine/Outline/SkeletonGraphic Tint Black" 4 | { 5 | Properties 6 | { 7 | [PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {} 8 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 9 | [Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 0 10 | 11 | _Color ("Tint", Color) = (1,1,1,1) 12 | _Black ("Black Point", Color) = (0,0,0,0) 13 | 14 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8 15 | [HideInInspector] _Stencil ("Stencil ID", Float) = 0 16 | [HideInInspector][Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0 17 | [HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255 18 | [HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255 19 | 20 | [HideInInspector] _ColorMask ("Color Mask", Float) = 15 21 | 22 | [Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0 23 | 24 | // Outline properties are drawn via custom editor. 25 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 26 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 27 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 28 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 29 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 30 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 31 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 32 | } 33 | 34 | SubShader 35 | { 36 | Tags 37 | { 38 | "Queue"="Transparent" 39 | "IgnoreProjector"="True" 40 | "RenderType"="Transparent" 41 | "PreviewType"="Plane" 42 | "CanUseSpriteAtlas"="True" 43 | } 44 | 45 | Stencil 46 | { 47 | Ref [_Stencil] 48 | Comp [_StencilComp] 49 | Pass [_StencilOp] 50 | ReadMask [_StencilReadMask] 51 | WriteMask [_StencilWriteMask] 52 | } 53 | 54 | Cull Off 55 | Lighting Off 56 | ZWrite Off 57 | ZTest [unity_GUIZTestMode] 58 | Fog { Mode Off } 59 | Blend One OneMinusSrcAlpha 60 | ColorMask [_ColorMask] 61 | 62 | UsePass "Spine/Outline/SkeletonGraphic/OUTLINE" 63 | 64 | UsePass "Spine/SkeletonGraphic Tint Black/NORMAL" 65 | } 66 | FallBack "Spine/SkeletonGraphic Tint Black" 67 | CustomEditor "SpineShaderWithOutlineGUI" 68 | } 69 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Fill-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Skeleton Fill" 2 | 3 | Shader "Spine/Outline/Skeleton Fill" { 4 | Properties { 5 | _FillColor ("FillColor", Color) = (1,1,1,1) 6 | _FillPhase ("FillPhase", Range(0, 1)) = 0 7 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "white" {} 8 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 9 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 10 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 11 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 12 | 13 | // Outline properties are drawn via custom editor. 14 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 15 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 16 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 17 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 18 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 19 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 20 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 21 | } 22 | SubShader { 23 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 24 | Blend One OneMinusSrcAlpha 25 | Cull Off 26 | ZWrite Off 27 | Lighting Off 28 | 29 | Stencil { 30 | Ref[_StencilRef] 31 | Comp[_StencilComp] 32 | Pass Keep 33 | } 34 | 35 | UsePass "Spine/Outline/Skeleton/OUTLINE" 36 | 37 | UsePass "Spine/Skeleton Fill/NORMAL" 38 | 39 | UsePass "Spine/Skeleton Fill/CASTER" 40 | } 41 | FallBack "Spine/Skeleton Fill" 42 | CustomEditor "SpineShaderWithOutlineGUI" 43 | } 44 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Lit-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Skeleton Lit" 2 | 3 | Shader "Spine/Outline/Skeleton Lit" { 4 | Properties { 5 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 6 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 7 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 8 | [Toggle(_DOUBLE_SIDED_LIGHTING)] _DoubleSidedLighting("Double-Sided Lighting", Int) = 0 9 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 10 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 11 | 12 | // Outline properties are drawn via custom editor. 13 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 14 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 15 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 16 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 17 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 18 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 19 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 20 | } 21 | 22 | SubShader { 23 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 24 | LOD 100 25 | 26 | Stencil { 27 | Ref[_StencilRef] 28 | Comp[_StencilComp] 29 | Pass Keep 30 | } 31 | 32 | UsePass "Spine/Outline/Skeleton/OUTLINE" 33 | 34 | UsePass "Spine/Skeleton Lit/NORMAL" 35 | 36 | UsePass "Spine/Skeleton Lit/CASTER" 37 | } 38 | FallBack "Spine/Skeleton Lit" 39 | CustomEditor "SpineShaderWithOutlineGUI" 40 | } 41 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Lit-ZWrite-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Skeleton Lit ZWrite" 2 | 3 | Shader "Spine/Outline/Skeleton Lit ZWrite" { 4 | Properties { 5 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.1 6 | _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 7 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 8 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 9 | [Toggle(_DOUBLE_SIDED_LIGHTING)] _DoubleSidedLighting("Double-Sided Lighting", Int) = 0 10 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 11 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 12 | 13 | // Outline properties are drawn via custom editor. 14 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 15 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 16 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 17 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 18 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 19 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 20 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 21 | } 22 | 23 | SubShader { 24 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 25 | LOD 100 26 | 27 | Stencil { 28 | Ref[_StencilRef] 29 | Comp[_StencilComp] 30 | Pass Keep 31 | } 32 | 33 | UsePass "Spine/Outline/Skeleton/OUTLINE" 34 | 35 | UsePass "Spine/Skeleton Lit ZWrite/NORMAL" 36 | 37 | UsePass "Spine/Skeleton Lit ZWrite/CASTER" 38 | } 39 | FallBack "Spine/Skeleton Lit ZWrite" 40 | CustomEditor "SpineShaderWithOutlineGUI" 41 | } 42 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Skeleton" 2 | 3 | Shader "Spine/Outline/Skeleton" { 4 | Properties { 5 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 6 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 7 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 8 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 9 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 10 | 11 | // Outline properties are drawn via custom editor. 12 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 13 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 14 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 15 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 16 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 17 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 18 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 19 | } 20 | 21 | SubShader { 22 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 23 | 24 | Fog { Mode Off } 25 | Cull Off 26 | ZWrite Off 27 | Blend One OneMinusSrcAlpha 28 | Lighting Off 29 | 30 | Stencil { 31 | Ref[_StencilRef] 32 | Comp[_StencilComp] 33 | Pass Keep 34 | } 35 | 36 | Pass { 37 | Name "Outline" 38 | CGPROGRAM 39 | #pragma vertex vertOutline 40 | #pragma fragment fragOutline 41 | #pragma shader_feature _ _USE8NEIGHBOURHOOD_ON 42 | #include "CGIncludes/Spine-Outline-Pass.cginc" 43 | ENDCG 44 | } 45 | 46 | UsePass "Spine/Skeleton/NORMAL" 47 | 48 | UsePass "Spine/Skeleton/CASTER" 49 | } 50 | FallBack "Spine/Skeleton" 51 | CustomEditor "SpineShaderWithOutlineGUI" 52 | } 53 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-OutlineOnly-ZWrite.shader: -------------------------------------------------------------------------------- 1 | Shader "Spine/Outline/OutlineOnly-ZWrite" { 2 | Properties { 3 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.1 4 | _ZWriteOffset ("Depth offset", Range(0,1)) = 0.01 5 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 6 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 7 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 8 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 9 | 10 | // Outline properties are drawn via custom editor. 11 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 12 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 13 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 14 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 15 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 16 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 17 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 18 | } 19 | 20 | SubShader { 21 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 22 | 23 | Fog { Mode Off } 24 | Cull Off 25 | ZWrite Off 26 | Blend One OneMinusSrcAlpha 27 | Lighting Off 28 | 29 | Stencil { 30 | Ref[_StencilRef] 31 | Comp[_StencilComp] 32 | Pass Keep 33 | } 34 | 35 | Pass 36 | { 37 | Name "DepthOnly" 38 | 39 | ZWrite On 40 | ColorMask 0 41 | Cull Off 42 | 43 | CGPROGRAM 44 | #pragma vertex DepthOnlyVertex 45 | #pragma fragment DepthOnlyFragment 46 | #include "../CGIncludes/Spine-DepthOnlyPass.cginc" 47 | ENDCG 48 | } 49 | 50 | Pass { 51 | Name "Outline" 52 | CGPROGRAM 53 | #pragma vertex vertOutline 54 | #pragma fragment fragOutline 55 | #pragma shader_feature _ _USE8NEIGHBOURHOOD_ON 56 | #include "CGIncludes/Spine-Outline-Pass.cginc" 57 | ENDCG 58 | } 59 | } 60 | FallBack "Spine/Skeleton" 61 | CustomEditor "SpineShaderWithOutlineGUI" 62 | } 63 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-Tint-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Skeleton Tint" 2 | 3 | Shader "Spine/Outline/Skeleton Tint" { 4 | Properties { 5 | _Color ("Tint Color", Color) = (1,1,1,1) 6 | _Black ("Black Point", Color) = (0,0,0,0) 7 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} 8 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 9 | _Cutoff("Shadow alpha cutoff", Range(0,1)) = 0.1 10 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 11 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 12 | 13 | // Outline properties are drawn via custom editor. 14 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 15 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 16 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 17 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 18 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 19 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 20 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 21 | } 22 | 23 | SubShader { 24 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 25 | 26 | Fog { Mode Off } 27 | Cull Off 28 | ZWrite Off 29 | Blend One OneMinusSrcAlpha 30 | Lighting Off 31 | 32 | Stencil { 33 | Ref[_StencilRef] 34 | Comp[_StencilComp] 35 | Pass Keep 36 | } 37 | 38 | UsePass "Spine/Outline/Skeleton/OUTLINE" 39 | 40 | UsePass "Spine/Skeleton Tint/NORMAL" 41 | 42 | UsePass "Spine/Skeleton Tint/CASTER" 43 | } 44 | FallBack "Spine/Skeleton Tint" 45 | CustomEditor "SpineShaderWithOutlineGUI" 46 | } 47 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Skeleton-TintBlack-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Skeleton Tint Black" 2 | 3 | Shader "Spine/Outline/Skeleton Tint Black" { 4 | Properties { 5 | _Color ("Tint Color", Color) = (1,1,1,1) 6 | _Black ("Black Point", Color) = (0,0,0,0) 7 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "black" {} 8 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 9 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 10 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 11 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 12 | 13 | // Outline properties are drawn via custom editor. 14 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 15 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 16 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 17 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 18 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 19 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 20 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 21 | } 22 | 23 | SubShader { 24 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 25 | LOD 100 26 | 27 | Fog { Mode Off } 28 | Cull Off 29 | ZWrite Off 30 | Blend One OneMinusSrcAlpha 31 | Lighting Off 32 | 33 | Stencil { 34 | Ref[_StencilRef] 35 | Comp[_StencilComp] 36 | Pass Keep 37 | } 38 | 39 | UsePass "Spine/Outline/Skeleton/OUTLINE" 40 | 41 | UsePass "Spine/Skeleton Tint Black/NORMAL" 42 | 43 | UsePass "Spine/Skeleton Tint Black/CASTER" 44 | } 45 | FallBack "Spine/Special/Skeleton Grayscale" 46 | CustomEditor "SpineShaderWithOutlineGUI" 47 | } 48 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Spine-Special-Skeleton-Grayscale-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Special/Skeleton Grayscale" 2 | 3 | Shader "Spine/Outline/Special/Skeleton Grayscale" { 4 | Properties { 5 | _GrayPhase ("Phase", Range(0, 1)) = 1 6 | [NoScaleOffset] _MainTex ("MainTex", 2D) = "white" {} 7 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 8 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 9 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 10 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 11 | 12 | // Outline properties are drawn via custom editor. 13 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 14 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 15 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 16 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 17 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 18 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 19 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 20 | } 21 | 22 | SubShader { 23 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 24 | Blend One OneMinusSrcAlpha 25 | Cull Off 26 | ZWrite Off 27 | Lighting Off 28 | 29 | Stencil { 30 | Ref[_StencilRef] 31 | Comp[_StencilComp] 32 | Pass Keep 33 | } 34 | 35 | UsePass "Spine/Outline/Skeleton/OUTLINE" 36 | 37 | UsePass "Spine/Special/Skeleton Grayscale/NORMAL" 38 | 39 | UsePass "Spine/Special/Skeleton Grayscale/CASTER" 40 | } 41 | FallBack "Spine/Special/Skeleton Grayscale" 42 | CustomEditor "SpineShaderWithOutlineGUI" 43 | } 44 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Sprite/SpritesPixelLit-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Sprite/Pixel Lit" 2 | 3 | Shader "Spine/Outline/Sprite/Pixel Lit" 4 | { 5 | Properties 6 | { 7 | _MainTex ("Main Texture", 2D) = "white" {} 8 | _Color ("Color", Color) = (1,1,1,1) 9 | 10 | _BumpScale("Scale", Float) = 1.0 11 | _BumpMap ("Normal Map", 2D) = "bump" {} 12 | 13 | [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 14 | 15 | _EmissionColor("Color", Color) = (0,0,0,0) 16 | _EmissionMap("Emission", 2D) = "white" {} 17 | _EmissionPower("Emission Power", Float) = 2.0 18 | 19 | _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5 20 | _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0 21 | [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 22 | _MetallicGlossMap("Metallic", 2D) = "white" {} 23 | 24 | _DiffuseRamp ("Diffuse Ramp Texture", 2D) = "gray" {} 25 | 26 | _FixedNormal ("Fixed Normal", Vector) = (0,0,1,1) 27 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.5 28 | _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 29 | _CustomRenderQueue ("Custom Render Queue", Float) = 0.0 30 | 31 | _OverlayColor ("Overlay Color", Color) = (0,0,0,0) 32 | _Hue("Hue", Range(-0.5,0.5)) = 0.0 33 | _Saturation("Saturation", Range(0,2)) = 1.0 34 | _Brightness("Brightness", Range(0,2)) = 1.0 35 | 36 | _RimPower("Rim Power", Float) = 2.0 37 | _RimColor ("Rim Color", Color) = (1,1,1,1) 38 | 39 | _BlendTex ("Blend Texture", 2D) = "white" {} 40 | _BlendAmount ("Blend", Range(0,1)) = 0.0 41 | 42 | [HideInInspector] _SrcBlend ("__src", Float) = 1.0 43 | [HideInInspector] _DstBlend ("__dst", Float) = 0.0 44 | [HideInInspector] _RenderQueue ("__queue", Float) = 0.0 45 | [HideInInspector] _Cull ("__cull", Float) = 0.0 46 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 47 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 48 | 49 | // Outline properties are drawn via custom editor. 50 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 51 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 52 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 53 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 54 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 55 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 56 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 57 | } 58 | 59 | SubShader 60 | { 61 | Tags { "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" } 62 | LOD 200 63 | 64 | Stencil { 65 | Ref[_StencilRef] 66 | Comp[_StencilComp] 67 | Pass Keep 68 | } 69 | 70 | UsePass "Spine/Outline/Skeleton/OUTLINE" 71 | 72 | UsePass "Spine/Sprite/Pixel Lit/FORWARD" 73 | 74 | UsePass "Spine/Sprite/Pixel Lit/FORWARD_DELTA" 75 | 76 | UsePass "Spine/Sprite/Pixel Lit/SHADOWCASTER" 77 | } 78 | 79 | FallBack "Spine/Sprite/Pixel Lit" 80 | CustomEditor "SpineSpriteShaderGUI" 81 | } 82 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Sprite/SpritesUnlit-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Sprite/Unlit" 2 | 3 | Shader "Spine/Outline/Sprite/Unlit" 4 | { 5 | Properties 6 | { 7 | _MainTex ("Main Texture", 2D) = "white" {} 8 | _Color ("Color", Color) = (1,1,1,1) 9 | 10 | [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 11 | 12 | _ZWrite ("Depth Write", Float) = 0.0 13 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.0 14 | _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 15 | _CustomRenderQueue ("Custom Render Queue", Float) = 0.0 16 | 17 | _OverlayColor ("Overlay Color", Color) = (0,0,0,0) 18 | _Hue("Hue", Range(-0.5,0.5)) = 0.0 19 | _Saturation("Saturation", Range(0,2)) = 1.0 20 | _Brightness("Brightness", Range(0,2)) = 1.0 21 | 22 | _BlendTex ("Blend Texture", 2D) = "white" {} 23 | _BlendAmount ("Blend", Range(0,1)) = 0.0 24 | 25 | [HideInInspector] _SrcBlend ("__src", Float) = 1.0 26 | [HideInInspector] _DstBlend ("__dst", Float) = 0.0 27 | [HideInInspector] _RenderQueue ("__queue", Float) = 0.0 28 | [HideInInspector] _Cull ("__cull", Float) = 0.0 29 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 30 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 31 | 32 | // Outline properties are drawn via custom editor. 33 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 34 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 35 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 36 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 37 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 38 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 39 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 40 | } 41 | 42 | SubShader 43 | { 44 | Tags { "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" } 45 | LOD 100 46 | 47 | Stencil { 48 | Ref[_StencilRef] 49 | Comp[_StencilComp] 50 | Pass Keep 51 | } 52 | 53 | UsePass "Spine/Outline/Skeleton/OUTLINE" 54 | 55 | UsePass "Spine/Sprite/Unlit/NORMAL" 56 | 57 | UsePass "Spine/Sprite/Unlit/SHADOWCASTER" 58 | } 59 | FallBack "Spine/Sprite/Unlit" 60 | CustomEditor "SpineSpriteShaderGUI" 61 | } 62 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Outline/Sprite/SpritesVertexLit-Outline.shader: -------------------------------------------------------------------------------- 1 | // Outline shader variant of "Spine/Sprite/Vertex Lit" 2 | 3 | Shader "Spine/Outline/Sprite/Vertex Lit" 4 | { 5 | Properties 6 | { 7 | _MainTex ("Main Texture", 2D) = "white" {} 8 | _Color ("Color", Color) = (1,1,1,1) 9 | 10 | _BumpScale("Scale", Float) = 1.0 11 | _BumpMap ("Normal Map", 2D) = "bump" {} 12 | 13 | [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 14 | 15 | _EmissionColor("Color", Color) = (0,0,0,0) 16 | _EmissionMap("Emission", 2D) = "white" {} 17 | _EmissionPower("Emission Power", Float) = 2.0 18 | 19 | _Glossiness("Smoothness", Range(0.0, 1.0)) = 0.5 20 | _GlossMapScale("Smoothness Scale", Range(0.0, 1.0)) = 1.0 21 | [Gamma] _Metallic("Metallic", Range(0.0, 1.0)) = 0.0 22 | _MetallicGlossMap("Metallic", 2D) = "white" {} 23 | 24 | _DiffuseRamp ("Diffuse Ramp Texture", 2D) = "gray" {} 25 | 26 | _FixedNormal ("Fixed Normal", Vector) = (0,0,1,1) 27 | _ZWrite ("Depth Write", Float) = 0.0 28 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.0 29 | _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 30 | _CustomRenderQueue ("Custom Render Queue", Float) = 0.0 31 | 32 | _OverlayColor ("Overlay Color", Color) = (0,0,0,0) 33 | _Hue("Hue", Range(-0.5,0.5)) = 0.0 34 | _Saturation("Saturation", Range(0,2)) = 1.0 35 | _Brightness("Brightness", Range(0,2)) = 1.0 36 | 37 | _RimPower("Rim Power", Float) = 2.0 38 | _RimColor ("Rim Color", Color) = (1,1,1,1) 39 | 40 | _BlendTex ("Blend Texture", 2D) = "white" {} 41 | _BlendAmount ("Blend", Range(0,1)) = 0.0 42 | 43 | [HideInInspector] _SrcBlend ("__src", Float) = 1.0 44 | [HideInInspector] _DstBlend ("__dst", Float) = 0.0 45 | [HideInInspector] _RenderQueue ("__queue", Float) = 0.0 46 | [HideInInspector] _Cull ("__cull", Float) = 0.0 47 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 48 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 49 | 50 | // Outline properties are drawn via custom editor. 51 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 52 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 53 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 54 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 55 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 56 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 57 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 58 | } 59 | 60 | SubShader 61 | { 62 | Tags { "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" } 63 | LOD 150 64 | 65 | Stencil { 66 | Ref[_StencilRef] 67 | Comp[_StencilComp] 68 | Pass Keep 69 | } 70 | 71 | UsePass "Spine/Outline/Skeleton/OUTLINE" 72 | 73 | UsePass "Spine/Sprite/Vertex Lit/VERTEX" 74 | 75 | UsePass "Spine/Sprite/Vertex Lit/SHADOWCASTER" 76 | } 77 | 78 | FallBack "Spine/Sprite/Vertex Lit" 79 | CustomEditor "SpineSpriteShaderGUI" 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit-ZWrite.shader: -------------------------------------------------------------------------------- 1 | // - Vertex Lit + ShadowCaster 2 | // - Premultiplied Alpha Blending (Optional straight alpha input) 3 | // - Double-sided, ZWrite 4 | 5 | Shader "Spine/Skeleton Lit ZWrite" { 6 | Properties { 7 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.1 8 | _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 9 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 10 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 11 | [Toggle(_DOUBLE_SIDED_LIGHTING)] _DoubleSidedLighting("Double-Sided Lighting", Int) = 0 12 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 13 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 14 | 15 | // Outline properties are drawn via custom editor. 16 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 17 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 18 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 19 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 20 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 21 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 22 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 23 | } 24 | 25 | SubShader { 26 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 27 | LOD 100 28 | 29 | Stencil { 30 | Ref[_StencilRef] 31 | Comp[_StencilComp] 32 | Pass Keep 33 | } 34 | 35 | Pass { 36 | Name "Normal" 37 | 38 | Tags { "LightMode"="Vertex" "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" } 39 | 40 | ZWrite On 41 | Cull Off 42 | Blend One OneMinusSrcAlpha 43 | 44 | CGPROGRAM 45 | #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT 46 | #pragma shader_feature _ _DOUBLE_SIDED_LIGHTING 47 | #pragma vertex vert 48 | #pragma fragment frag 49 | #pragma target 2.0 50 | 51 | #define _ALPHA_CLIP 52 | #pragma multi_compile __ POINT SPOT 53 | #include "CGIncludes/Spine-Skeleton-Lit-Common.cginc" 54 | ENDCG 55 | 56 | } 57 | 58 | Pass { 59 | Name "Caster" 60 | Tags { "LightMode"="ShadowCaster" } 61 | Offset 1, 1 62 | 63 | Fog { Mode Off } 64 | ZWrite On 65 | ZTest LEqual 66 | Cull Off 67 | Lighting Off 68 | 69 | CGPROGRAM 70 | #pragma vertex vertShadow 71 | #pragma fragment fragShadow 72 | #pragma multi_compile_shadowcaster 73 | #pragma fragmentoption ARB_precision_hint_fastest 74 | 75 | #define SHADOW_CUTOFF _ShadowAlphaCutoff 76 | #include "CGIncludes/Spine-Skeleton-Lit-Common-Shadow.cginc" 77 | 78 | ENDCG 79 | } 80 | } 81 | CustomEditor "SpineShaderWithOutlineGUI" 82 | } 83 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton-Lit.shader: -------------------------------------------------------------------------------- 1 | // - Vertex Lit + ShadowCaster 2 | // - Premultiplied Alpha Blending (Optional straight alpha input) 3 | // - Double-sided, no depth 4 | 5 | Shader "Spine/Skeleton Lit" { 6 | Properties { 7 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 8 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 9 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 10 | [Toggle(_DOUBLE_SIDED_LIGHTING)] _DoubleSidedLighting("Double-Sided Lighting", Int) = 0 11 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 12 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 13 | 14 | // Outline properties are drawn via custom editor. 15 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 16 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 17 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 18 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 19 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 20 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 21 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 22 | } 23 | 24 | SubShader { 25 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 26 | LOD 100 27 | 28 | Stencil { 29 | Ref[_StencilRef] 30 | Comp[_StencilComp] 31 | Pass Keep 32 | } 33 | 34 | Pass { 35 | Name "Normal" 36 | 37 | Tags { "LightMode"="Vertex" "Queue"="Transparent" "IgnoreProjector"="true" "RenderType"="Transparent" } 38 | 39 | ZWrite Off 40 | Cull Off 41 | Blend One OneMinusSrcAlpha 42 | 43 | CGPROGRAM 44 | #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT 45 | #pragma shader_feature _ _DOUBLE_SIDED_LIGHTING 46 | #pragma vertex vert 47 | #pragma fragment frag 48 | #pragma target 2.0 49 | 50 | #pragma multi_compile __ POINT SPOT 51 | #include "CGIncludes/Spine-Skeleton-Lit-Common.cginc" 52 | ENDCG 53 | 54 | } 55 | 56 | Pass { 57 | Name "Caster" 58 | Tags { "LightMode"="ShadowCaster" } 59 | Offset 1, 1 60 | 61 | Fog { Mode Off } 62 | ZWrite On 63 | ZTest LEqual 64 | Cull Off 65 | Lighting Off 66 | 67 | CGPROGRAM 68 | #pragma vertex vertShadow 69 | #pragma fragment fragShadow 70 | #pragma multi_compile_shadowcaster 71 | #pragma fragmentoption ARB_precision_hint_fastest 72 | 73 | #define SHADOW_CUTOFF _Cutoff 74 | #include "CGIncludes/Spine-Skeleton-Lit-Common-Shadow.cginc" 75 | 76 | ENDCG 77 | } 78 | } 79 | CustomEditor "SpineShaderWithOutlineGUI" 80 | } 81 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Spine-Skeleton.shader: -------------------------------------------------------------------------------- 1 | Shader "Spine/Skeleton" { 2 | Properties { 3 | _Cutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 4 | [NoScaleOffset] _MainTex ("Main Texture", 2D) = "black" {} 5 | [Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0 6 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 7 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 8 | 9 | // Outline properties are drawn via custom editor. 10 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 11 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 12 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 13 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 14 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 15 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 16 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 17 | } 18 | 19 | SubShader { 20 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" "PreviewType"="Plane" } 21 | 22 | Fog { Mode Off } 23 | Cull Off 24 | ZWrite Off 25 | Blend One OneMinusSrcAlpha 26 | Lighting Off 27 | 28 | Stencil { 29 | Ref[_StencilRef] 30 | Comp[_StencilComp] 31 | Pass Keep 32 | } 33 | 34 | Pass { 35 | Name "Normal" 36 | 37 | CGPROGRAM 38 | #pragma shader_feature _ _STRAIGHT_ALPHA_INPUT 39 | #pragma vertex vert 40 | #pragma fragment frag 41 | #include "UnityCG.cginc" 42 | sampler2D _MainTex; 43 | 44 | struct VertexInput { 45 | float4 vertex : POSITION; 46 | float2 uv : TEXCOORD0; 47 | float4 vertexColor : COLOR; 48 | }; 49 | 50 | struct VertexOutput { 51 | float4 pos : SV_POSITION; 52 | float2 uv : TEXCOORD0; 53 | float4 vertexColor : COLOR; 54 | }; 55 | 56 | VertexOutput vert (VertexInput v) { 57 | VertexOutput o; 58 | o.pos = UnityObjectToClipPos(v.vertex); 59 | o.uv = v.uv; 60 | o.vertexColor = v.vertexColor; 61 | return o; 62 | } 63 | 64 | float4 frag (VertexOutput i) : SV_Target { 65 | float4 texColor = tex2D(_MainTex, i.uv); 66 | 67 | #if defined(_STRAIGHT_ALPHA_INPUT) 68 | texColor.rgb *= texColor.a; 69 | #endif 70 | 71 | return (texColor * i.vertexColor); 72 | } 73 | ENDCG 74 | } 75 | 76 | Pass { 77 | Name "Caster" 78 | Tags { "LightMode"="ShadowCaster" } 79 | Offset 1, 1 80 | ZWrite On 81 | ZTest LEqual 82 | 83 | Fog { Mode Off } 84 | Cull Off 85 | Lighting Off 86 | 87 | CGPROGRAM 88 | #pragma vertex vert 89 | #pragma fragment frag 90 | #pragma multi_compile_shadowcaster 91 | #pragma fragmentoption ARB_precision_hint_fastest 92 | #include "UnityCG.cginc" 93 | sampler2D _MainTex; 94 | fixed _Cutoff; 95 | 96 | struct VertexOutput { 97 | V2F_SHADOW_CASTER; 98 | float4 uvAndAlpha : TEXCOORD1; 99 | }; 100 | 101 | VertexOutput vert (appdata_base v, float4 vertexColor : COLOR) { 102 | VertexOutput o; 103 | o.uvAndAlpha = v.texcoord; 104 | o.uvAndAlpha.a = vertexColor.a; 105 | TRANSFER_SHADOW_CASTER(o) 106 | return o; 107 | } 108 | 109 | float4 frag (VertexOutput i) : SV_Target { 110 | fixed4 texcol = tex2D(_MainTex, i.uvAndAlpha.xy); 111 | clip(texcol.a * i.uvAndAlpha.a - _Cutoff); 112 | SHADOW_CASTER_FRAGMENT(i) 113 | } 114 | ENDCG 115 | } 116 | } 117 | CustomEditor "SpineShaderWithOutlineGUI" 118 | } 119 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/ShaderMaths.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SHADER_MATHS_INCLUDED 2 | #define SHADER_MATHS_INCLUDED 3 | 4 | #if defined(USE_LWRP) 5 | #include "Packages/com.unity.render-pipelines.lightweight/ShaderLibrary/Core.hlsl" 6 | #elif defined(USE_URP) 7 | #include "Packages/com.unity.render-pipelines.universal/ShaderLibrary/Core.hlsl" 8 | #else 9 | #include "UnityCG.cginc" 10 | #endif 11 | 12 | //////////////////////////////////////// 13 | // Maths functions 14 | // 15 | 16 | inline half3 safeNormalize(half3 inVec) 17 | { 18 | half dp3 = max(0.001f, dot(inVec, inVec)); 19 | return inVec * rsqrt(dp3); 20 | } 21 | 22 | inline float dotClamped(float3 a, float3 b) 23 | { 24 | #if (SHADER_TARGET < 30 || defined(SHADER_API_PS3)) 25 | return saturate(dot(a, b)); 26 | #else 27 | return max(0.0h, dot(a, b)); 28 | #endif 29 | } 30 | 31 | inline float oneDividedBy(float value) 32 | { 33 | //Catches NANs 34 | float sign_value = sign(value); 35 | float sign_value_squared = sign_value*sign_value; 36 | return sign_value_squared / ( value + sign_value_squared - 1.0); 37 | } 38 | 39 | inline half pow5 (half x) 40 | { 41 | return x*x*x*x*x; 42 | } 43 | 44 | inline float4 quat_from_axis_angle(float3 axis, float angleRadians) 45 | { 46 | float4 qr; 47 | float half_angle = (angleRadians * 0.5); 48 | qr.x = axis.x * sin(half_angle); 49 | qr.y = axis.y * sin(half_angle); 50 | qr.z = axis.z * sin(half_angle); 51 | qr.w = cos(half_angle); 52 | return qr; 53 | } 54 | 55 | inline float3 rotate_vertex_position(float3 position, float3 axis, float angleRadians) 56 | { 57 | float4 q = quat_from_axis_angle(axis, angleRadians); 58 | float3 v = position.xyz; 59 | return v + 2.0 * cross(q.xyz, cross(q.xyz, v) + q.w * v); 60 | } 61 | 62 | float3 EncodeFloatRGB(float value) 63 | { 64 | const float max24int = 256*256*256-1; 65 | float3 decomp = floor( value * float3( max24int/(256*256), max24int/256, max24int ) ) / 255.0; 66 | decomp.z -= decomp.y * 256.0; 67 | decomp.y -= decomp.x * 256.0; 68 | return decomp; 69 | } 70 | 71 | float DecodeFloatRGB(float3 decomp) 72 | { 73 | return dot( decomp.xyz, float3( 255.0/256, 255.0/(256*256), 255.0/(256*256*256) ) ); 74 | } 75 | 76 | #endif // SHADER_MATHS_INCLUDED 77 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpriteShadows.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SPRITE_SHADOWS_INCLUDED 2 | #define SPRITE_SHADOWS_INCLUDED 3 | 4 | #include "ShaderShared.cginc" 5 | 6 | //////////////////////////////////////// 7 | // Vertex structs 8 | // 9 | 10 | struct vertexInput 11 | { 12 | float4 vertex : POSITION; 13 | float4 texcoord : TEXCOORD0; 14 | }; 15 | 16 | struct vertexOutput 17 | { 18 | V2F_SHADOW_CASTER; 19 | float4 texcoordAndAlpha : TEXCOORD1; 20 | }; 21 | 22 | //////////////////////////////////////// 23 | // Vertex program 24 | // 25 | 26 | vertexOutput vert(vertexInput v, float4 vertexColor : COLOR) 27 | { 28 | vertexOutput o; 29 | TRANSFER_SHADOW_CASTER(o) 30 | o.texcoordAndAlpha.xy = calculateTextureCoord(v.texcoord); 31 | o.texcoordAndAlpha.z = 0; 32 | o.texcoordAndAlpha.a = vertexColor.a; 33 | return o; 34 | } 35 | 36 | //////////////////////////////////////// 37 | // Fragment program 38 | // 39 | 40 | 41 | uniform fixed _ShadowAlphaCutoff; 42 | 43 | fixed4 frag(vertexOutput IN) : SV_Target 44 | { 45 | fixed4 texureColor = calculateTexturePixel(IN.texcoordAndAlpha.xy); 46 | clip(texureColor.a * IN.texcoordAndAlpha.a - _ShadowAlphaCutoff); 47 | 48 | SHADOW_CASTER_FRAGMENT(IN) 49 | } 50 | 51 | #endif // SPRITE_SHADOWS_INCLUDED -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Sprite/CGIncludes/SpriteUnlit.cginc: -------------------------------------------------------------------------------- 1 | #ifndef SPRITE_UNLIT_INCLUDED 2 | #define SPRITE_UNLIT_INCLUDED 3 | 4 | #include "ShaderShared.cginc" 5 | 6 | //////////////////////////////////////// 7 | // Vertex structs 8 | // 9 | 10 | struct VertexInput 11 | { 12 | float4 vertex : POSITION; 13 | float4 texcoord : TEXCOORD0; 14 | fixed4 color : COLOR; 15 | UNITY_VERTEX_INPUT_INSTANCE_ID 16 | }; 17 | 18 | struct VertexOutput 19 | { 20 | float4 pos : SV_POSITION; 21 | float2 texcoord : TEXCOORD0; 22 | fixed4 color : COLOR; 23 | #if defined(_FOG) 24 | UNITY_FOG_COORDS(1) 25 | #endif // _FOG 26 | 27 | UNITY_VERTEX_OUTPUT_STEREO 28 | }; 29 | 30 | //////////////////////////////////////// 31 | // Vertex program 32 | // 33 | 34 | VertexOutput vert(VertexInput input) 35 | { 36 | VertexOutput output; 37 | 38 | UNITY_SETUP_INSTANCE_ID(input); 39 | UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(output); 40 | 41 | output.pos = calculateLocalPos(input.vertex); 42 | output.texcoord = calculateTextureCoord(input.texcoord); 43 | output.color = calculateVertexColor(input.color); 44 | 45 | #if defined(_FOG) 46 | UNITY_TRANSFER_FOG(output,output.pos); 47 | #endif // _FOG 48 | 49 | return output; 50 | } 51 | 52 | //////////////////////////////////////// 53 | // Fragment program 54 | // 55 | fixed4 frag(VertexOutput input) : SV_Target 56 | { 57 | fixed4 texureColor = calculateTexturePixel(input.texcoord.xy); 58 | RETURN_UNLIT_IF_ADDITIVE_SLOT(texureColor, input.color) // shall be called before ALPHA_CLIP 59 | ALPHA_CLIP(texureColor, input.color) 60 | fixed4 pixel = calculatePixel(texureColor, input.color); 61 | 62 | COLORISE(pixel) 63 | APPLY_FOG(pixel, input) 64 | 65 | return pixel; 66 | } 67 | 68 | #endif // SPRITE_UNLIT_INCLUDED 69 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Sprite/README.md: -------------------------------------------------------------------------------- 1 | Contributed by ToddRivers 2 | 3 | # Unity Sprite Shaders 4 | An Uber Shader specialised for rendering Sprites in Unity. 5 | Even though it's designed for Sprites it can be used for a whole range of uses. It supports a wide range of optional shader features that won't effect performance unless they are used. 6 | It also supports per-pixel effects such as normal maps and diffuse ramping whilst using Vertex Lit rendering. 7 | 8 | ### Lighting 9 | The shaders support lighting using both Forward Rendering and Vertex Lit Rendering. 10 | Forward rendering is more accurate but is slower and crucially means the sprite has to write to depth using alpha clipping to avoid overdraw. 11 | Vertex lit means all lighting can be done in one pass meaning full alpha can be used. 12 | 13 | ### Normal Mapping 14 | Normals maps are supported in both lighting modes (in Vertex Lit rendering data for normal mapping is packed into texture channels and then processed per pixel). 15 | 16 | ### Blend Modes 17 | Easily switch between blend modes including pre-multiplied alpha, additive, multiply etc. 18 | 19 | ### Rim Lighting 20 | Camera-space rim lighting is supported in both lighting modes. 21 | 22 | ### Diffuse Ramp 23 | A ramp texture is optionally supported for toon shading effects. 24 | 25 | ### Shadows 26 | Shadows are supported using alpha clipping. 27 | 28 | ### Gradient based Ambient lighting 29 | Both lighting modes support using a gradient for ambient light. In Vertex Lit mode the Spherical Harmonics is approximated from the ground, equator and sky colors. 30 | 31 | ### Emission Map 32 | An optional emission map is supported. 33 | 34 | ### Camera Space Normals 35 | As sprites are 2d their normals will always be constant. The shaders allow you to define a fixed normal in camera space rather than pass through mesh normals. 36 | This not only saves vertex throughput but means lighting looks less 'flat' for rendering sprites with a perspective camera. 37 | 38 | ### Color Adjustment 39 | The shaders allow optional adjustment of hue / saturation and brightness as well as applying a solid color overlay effect for flashing a sprite to a solid color (eg. for damage effects). 40 | 41 | ### Fog 42 | Fog is optionally supported 43 | 44 | 45 | ## To Use 46 | On your object's material click the drop down for shader and select Spine\Sprite\Pixel Lit, Vertex Lit or Unlit. 47 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Sprite/SpritesUnlit.shader: -------------------------------------------------------------------------------- 1 | Shader "Spine/Sprite/Unlit" 2 | { 3 | Properties 4 | { 5 | _MainTex ("Main Texture", 2D) = "white" {} 6 | _Color ("Color", Color) = (1,1,1,1) 7 | 8 | [MaterialToggle] PixelSnap ("Pixel snap", Float) = 0 9 | 10 | _ZWrite ("Depth Write", Float) = 0.0 11 | _Cutoff ("Depth alpha cutoff", Range(0,1)) = 0.0 12 | _ShadowAlphaCutoff ("Shadow alpha cutoff", Range(0,1)) = 0.1 13 | _CustomRenderQueue ("Custom Render Queue", Float) = 0.0 14 | 15 | _OverlayColor ("Overlay Color", Color) = (0,0,0,0) 16 | _Hue("Hue", Range(-0.5,0.5)) = 0.0 17 | _Saturation("Saturation", Range(0,2)) = 1.0 18 | _Brightness("Brightness", Range(0,2)) = 1.0 19 | 20 | _BlendTex ("Blend Texture", 2D) = "white" {} 21 | _BlendAmount ("Blend", Range(0,1)) = 0.0 22 | 23 | [HideInInspector] _SrcBlend ("__src", Float) = 1.0 24 | [HideInInspector] _DstBlend ("__dst", Float) = 0.0 25 | [HideInInspector] _RenderQueue ("__queue", Float) = 0.0 26 | [HideInInspector] _Cull ("__cull", Float) = 0.0 27 | [HideInInspector] _StencilRef("Stencil Reference", Float) = 1.0 28 | [HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp("Stencil Comparison", Float) = 8 // Set to Always as default 29 | 30 | // Outline properties are drawn via custom editor. 31 | [HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0 32 | [HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1) 33 | [HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024 34 | [HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25 35 | [HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0 36 | [HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1 37 | [HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0 38 | } 39 | 40 | SubShader 41 | { 42 | Tags { "Queue"="Transparent" "RenderType"="Sprite" "AlphaDepth"="False" "CanUseSpriteAtlas"="True" "IgnoreProjector"="True" } 43 | LOD 100 44 | 45 | Stencil { 46 | Ref[_StencilRef] 47 | Comp[_StencilComp] 48 | Pass Keep 49 | } 50 | 51 | Pass 52 | { 53 | Name "Normal" 54 | 55 | Blend [_SrcBlend] [_DstBlend] 56 | Lighting Off 57 | ZWrite [_ZWrite] 58 | ZTest LEqual 59 | Cull [_Cull] 60 | Lighting Off 61 | 62 | CGPROGRAM 63 | #pragma shader_feature _ _ALPHABLEND_ON _ALPHAPREMULTIPLY_ON _ADDITIVEBLEND _ADDITIVEBLEND_SOFT _MULTIPLYBLEND _MULTIPLYBLEND_X2 64 | #pragma shader_feature _ALPHA_CLIP 65 | #pragma shader_feature _TEXTURE_BLEND 66 | #pragma shader_feature _COLOR_ADJUST 67 | #pragma shader_feature _FOG 68 | 69 | #pragma fragmentoption ARB_precision_hint_fastest 70 | #pragma multi_compile_fog 71 | #pragma multi_compile _ PIXELSNAP_ON 72 | #pragma multi_compile _ ETC1_EXTERNAL_ALPHA 73 | 74 | #pragma vertex vert 75 | #pragma fragment frag 76 | 77 | #include "CGIncludes/SpriteUnlit.cginc" 78 | ENDCG 79 | } 80 | Pass 81 | { 82 | Name "ShadowCaster" 83 | Tags { "LightMode"="ShadowCaster" } 84 | Offset 1, 1 85 | 86 | Fog { Mode Off } 87 | ZWrite On 88 | ZTest LEqual 89 | Cull Off 90 | Lighting Off 91 | 92 | CGPROGRAM 93 | #pragma fragmentoption ARB_precision_hint_fastest 94 | #pragma multi_compile_shadowcaster 95 | #pragma multi_compile _ PIXELSNAP_ON 96 | #pragma multi_compile _ ETC1_EXTERNAL_ALPHA 97 | 98 | #pragma vertex vert 99 | #pragma fragment frag 100 | 101 | #include "CGIncludes/SpriteShadows.cginc" 102 | ENDCG 103 | } 104 | } 105 | 106 | CustomEditor "SpineSpriteShaderGUI" 107 | } 108 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Utility/Hidden-Spine-Bones.shader: -------------------------------------------------------------------------------- 1 | Shader "Hidden/Spine/Bones" { 2 | Properties { 3 | _Color ("Color", Color) = (0.5,0.5,0.5,0.5) 4 | _MainTex ("Particle Texture", 2D) = "white" {} 5 | } 6 | 7 | Category { 8 | Tags { "Queue"="Transparent" "IgnoreProjector"="True" "RenderType"="Transparent" } 9 | Blend SrcAlpha OneMinusSrcAlpha 10 | AlphaTest Greater .01 11 | ColorMask RGB 12 | 13 | Lighting Off Cull Off ZTest Always ZWrite Off Fog { Mode Off } 14 | 15 | SubShader { 16 | Pass { 17 | 18 | CGPROGRAM 19 | #pragma vertex vert 20 | #pragma fragment frag 21 | // #pragma multi_compile_particles 22 | 23 | #include "UnityCG.cginc" 24 | 25 | sampler2D _MainTex; 26 | fixed4 _Color; 27 | 28 | struct appdata_t { 29 | float4 vertex : POSITION; 30 | fixed4 color : COLOR; 31 | float2 texcoord : TEXCOORD0; 32 | }; 33 | 34 | struct v2f { 35 | float4 vertex : SV_POSITION; 36 | fixed4 color : COLOR; 37 | float2 texcoord : TEXCOORD0; 38 | // #ifdef SOFTPARTICLES_ON 39 | // float4 projPos : TEXCOORD1; 40 | // #endif 41 | }; 42 | 43 | float4 _MainTex_ST; 44 | 45 | v2f vert (appdata_t v) { 46 | v2f o; 47 | o.vertex = UnityObjectToClipPos(v.vertex); 48 | // #ifdef SOFTPARTICLES_ON 49 | // o.projPos = ComputeScreenPos (o.vertex); 50 | // COMPUTE_EYEDEPTH(o.projPos.z); 51 | // #endif 52 | o.color = v.color; 53 | o.texcoord = TRANSFORM_TEX(v.texcoord,_MainTex); 54 | return o; 55 | } 56 | 57 | sampler2D_float _CameraDepthTexture; 58 | 59 | fixed4 frag (v2f i) : SV_Target { 60 | return i.color * _Color * tex2D(_MainTex, i.texcoord); 61 | } 62 | ENDCG 63 | } 64 | } 65 | } 66 | } 67 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Utility/HiddenPass.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: HiddenPass 10 | m_Shader: {fileID: 4800000, guid: 913475501bf19374c84390868a9d6d3d, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 5 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: _MainTex 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | m_Floats: 25 | - first: 26 | name: _Cutoff 27 | second: 0.1 28 | - first: 29 | name: _InvFade 30 | second: 1 31 | m_Colors: 32 | - first: 33 | name: _Color 34 | second: {r: 1, g: 1, b: 1, a: 1} 35 | - first: 36 | name: _TintColor 37 | second: {r: 0.5, g: 0.5, b: 0.5, a: 0} 38 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Shaders/Utility/HiddenPass.shader: -------------------------------------------------------------------------------- 1 | Shader "Spine/Special/HiddenPass" { 2 | SubShader 3 | { 4 | Tags {"Queue" = "Geometry-1" } 5 | Lighting Off 6 | Pass 7 | { 8 | ZWrite Off 9 | ColorMask 0 10 | } 11 | } 12 | } 13 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/Default BlendModeMaterials.asset: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!114 &11400000 4 | MonoBehaviour: 5 | m_ObjectHideFlags: 0 6 | m_PrefabParentObject: {fileID: 0} 7 | m_PrefabInternal: {fileID: 0} 8 | m_GameObject: {fileID: 0} 9 | m_Enabled: 1 10 | m_EditorHideFlags: 0 11 | m_Script: {fileID: 11500000, guid: 12b0b98acbcda44468a7ae4e35000abe, type: 3} 12 | m_Name: Default BlendModeMaterials 13 | m_EditorClassIdentifier: 14 | multiplyMaterialTemplate: {fileID: 2100000, guid: 53bf0ab317d032d418cf1252d68f51df, 15 | type: 2} 16 | screenMaterialTemplate: {fileID: 2100000, guid: 73f0f46d3177c614baf0fa48d646a9be, 17 | type: 2} 18 | additiveMaterialTemplate: {fileID: 2100000, guid: 4deba332d47209e4780b3c5fcf0e3745, 19 | type: 2} 20 | applyAdditiveMaterial: 1 21 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/SkeletonPMAAdditive.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonPMAAdditive 10 | m_Shader: {fileID: 4800000, guid: 53efa1d97f5d9f74285d4330cda14e36, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_EnableInstancingVariants: 0 14 | m_DoubleSidedGI: 0 15 | m_CustomRenderQueue: -1 16 | stringTagMap: {} 17 | disabledShaderPasses: [] 18 | m_SavedProperties: 19 | serializedVersion: 3 20 | m_TexEnvs: 21 | - : 22 | m_Texture: {fileID: 0} 23 | m_Scale: {x: 1, y: 1} 24 | m_Offset: {x: 0, y: 0} 25 | - _MainTex: 26 | m_Texture: {fileID: 0} 27 | m_Scale: {x: 1, y: 1} 28 | m_Offset: {x: 0, y: 0} 29 | m_Floats: 30 | - : 0 31 | - _Cutoff: 0.1 32 | - _StraightAlphaInput: 0 33 | m_Colors: 34 | - : {r: 0, g: 2.018574, b: 1e-45, a: 0.000007110106} 35 | - _Color: {r: 1, g: 1, b: 1, a: 1} 36 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/SkeletonPMAMultiply.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonPMAMultiply 10 | m_Shader: {fileID: 4800000, guid: 8bdcdc7ee298e594a9c20c61d25c33b6, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _MainTex 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | m_Floats: 31 | - first: 32 | name: 33 | second: 0 34 | - first: 35 | name: _Cutoff 36 | second: 0.1 37 | m_Colors: 38 | - first: 39 | name: 40 | second: {r: 0, g: 2.018574, b: 1e-45, a: 0.000007110106} 41 | - first: 42 | name: _Color 43 | second: {r: 1, g: 1, b: 1, a: 1} 44 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/SkeletonDataModifierAssets/BlendModeMaterials/SkeletonPMAScreen.mat: -------------------------------------------------------------------------------- 1 | %YAML 1.1 2 | %TAG !u! tag:unity3d.com,2011: 3 | --- !u!21 &2100000 4 | Material: 5 | serializedVersion: 6 6 | m_ObjectHideFlags: 0 7 | m_PrefabParentObject: {fileID: 0} 8 | m_PrefabInternal: {fileID: 0} 9 | m_Name: SkeletonPMAScreen 10 | m_Shader: {fileID: 4800000, guid: 4e8caa36c07aacf4ab270da00784e4d9, type: 3} 11 | m_ShaderKeywords: 12 | m_LightmapFlags: 4 13 | m_CustomRenderQueue: -1 14 | stringTagMap: {} 15 | m_SavedProperties: 16 | serializedVersion: 2 17 | m_TexEnvs: 18 | - first: 19 | name: 20 | second: 21 | m_Texture: {fileID: 0} 22 | m_Scale: {x: 1, y: 1} 23 | m_Offset: {x: 0, y: 0} 24 | - first: 25 | name: _MainTex 26 | second: 27 | m_Texture: {fileID: 0} 28 | m_Scale: {x: 1, y: 1} 29 | m_Offset: {x: 0, y: 0} 30 | m_Floats: 31 | - first: 32 | name: 33 | second: 0 34 | - first: 35 | name: _Cutoff 36 | second: 0.1 37 | m_Colors: 38 | - first: 39 | name: 40 | second: {r: 0, g: 2.018574, b: 1e-45, a: 0.000007121922} 41 | - first: 42 | name: _Color 43 | second: {r: 1, g: 1, b: 1, a: 1} 44 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationComplete.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | using System.Collections; 32 | using Spine; 33 | 34 | namespace Spine.Unity { 35 | /// 36 | /// Use this as a condition-blocking yield instruction for Unity Coroutines. 37 | /// The routine will pause until the AnimationState.TrackEntry fires its Complete event. 38 | /// It can be configured to trigger on the End event as well to cover interruption. 39 | ///

40 | /// See the Spine Unity Events documentation page 41 | /// and 42 | /// for more information on when track events will be triggered.

43 | public class WaitForSpineAnimationComplete : WaitForSpineAnimation, IEnumerator { 44 | 45 | public WaitForSpineAnimationComplete (Spine.TrackEntry trackEntry, bool includeEndEvent = false) : 46 | base(trackEntry, 47 | includeEndEvent ? (AnimationEventTypes.Complete | AnimationEventTypes.End) : AnimationEventTypes.Complete) 48 | { 49 | } 50 | 51 | #region Reuse 52 | /// 53 | /// One optimization high-frequency YieldInstruction returns is to cache instances to minimize GC pressure. 54 | /// Use NowWaitFor to reuse the same instance of WaitForSpineAnimationComplete. 55 | public WaitForSpineAnimationComplete NowWaitFor (Spine.TrackEntry trackEntry, bool includeEndEvent = false) { 56 | SafeSubscribe(trackEntry, 57 | includeEndEvent ? (AnimationEventTypes.Complete | AnimationEventTypes.End) : AnimationEventTypes.Complete); 58 | return this; 59 | } 60 | #endregion 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineAnimationEnd.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | using System.Collections; 32 | using Spine; 33 | 34 | namespace Spine.Unity { 35 | /// 36 | /// Use this as a condition-blocking yield instruction for Unity Coroutines. 37 | /// The routine will pause until the AnimationState.TrackEntry fires its End event. 38 | ///

39 | /// See the Spine Unity Events documentation page 40 | /// and 41 | /// for more information on when track events will be triggered.

42 | public class WaitForSpineAnimationEnd : WaitForSpineAnimation, IEnumerator { 43 | 44 | public WaitForSpineAnimationEnd (Spine.TrackEntry trackEntry) : 45 | base(trackEntry, AnimationEventTypes.End) 46 | { 47 | } 48 | 49 | #region Reuse 50 | /// 51 | /// One optimization high-frequency YieldInstruction returns is to cache instances to minimize GC pressure. 52 | /// Use NowWaitFor to reuse the same instance of WaitForSpineAnimationComplete. 53 | public WaitForSpineAnimationEnd NowWaitFor (Spine.TrackEntry trackEntry) { 54 | SafeSubscribe(trackEntry, AnimationEventTypes.End); 55 | return this; 56 | } 57 | #endregion 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /Assets/Spine/Runtime/spine-unity/Utility/YieldInstructions/WaitForSpineTrackEntryEnd.cs: -------------------------------------------------------------------------------- 1 | /****************************************************************************** 2 | * Spine Runtimes License Agreement 3 | * Last updated January 1, 2020. Replaces all prior versions. 4 | * 5 | * Copyright (c) 2013-2020, Esoteric Software LLC 6 | * 7 | * Integration of the Spine Runtimes into software or otherwise creating 8 | * derivative works of the Spine Runtimes is permitted under the terms and 9 | * conditions of Section 2 of the Spine Editor License Agreement: 10 | * http://esotericsoftware.com/spine-editor-license 11 | * 12 | * Otherwise, it is permitted to integrate the Spine Runtimes into software 13 | * or otherwise create derivative works of the Spine Runtimes (collectively, 14 | * "Products"), provided that each user of the Products must obtain their own 15 | * Spine Editor license and redistribution of the Products in any form must 16 | * include this license and copyright notice. 17 | * 18 | * THE SPINE RUNTIMES ARE PROVIDED BY ESOTERIC SOFTWARE LLC "AS IS" AND ANY 19 | * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED 20 | * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 21 | * DISCLAIMED. IN NO EVENT SHALL ESOTERIC SOFTWARE LLC BE LIABLE FOR ANY 22 | * DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES 23 | * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES, 24 | * BUSINESS INTERRUPTION, OR LOSS OF USE, DATA, OR PROFITS) HOWEVER CAUSED AND 25 | * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT 26 | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 27 | * THE SPINE RUNTIMES, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 28 | *****************************************************************************/ 29 | 30 | using UnityEngine; 31 | using System.Collections; 32 | using Spine; 33 | 34 | namespace Spine.Unity { 35 | /// 36 | /// Use this as a condition-blocking yield instruction for Unity Coroutines. 37 | /// The routine will pause until the AnimationState.TrackEntry fires its End event. 38 | public class WaitForSpineTrackEntryEnd : IEnumerator { 39 | 40 | bool m_WasFired = false; 41 | 42 | public WaitForSpineTrackEntryEnd (Spine.TrackEntry trackEntry) { 43 | SafeSubscribe(trackEntry); 44 | } 45 | 46 | void HandleEnd (TrackEntry trackEntry) { 47 | m_WasFired = true; 48 | } 49 | 50 | void SafeSubscribe (Spine.TrackEntry trackEntry) { 51 | if (trackEntry == null) { 52 | // Break immediately if trackEntry is null. 53 | Debug.LogWarning("TrackEntry was null. Coroutine will continue immediately."); 54 | m_WasFired = true; 55 | } else { 56 | trackEntry.End += HandleEnd; 57 | } 58 | } 59 | 60 | #region Reuse 61 | /// 62 | /// One optimization high-frequency YieldInstruction returns is to cache instances to minimize GC pressure. 63 | /// Use NowWaitFor to reuse the same instance of WaitForSpineAnimationEnd. 64 | public WaitForSpineTrackEntryEnd NowWaitFor (Spine.TrackEntry trackEntry) { 65 | SafeSubscribe(trackEntry); 66 | return this; 67 | } 68 | #endregion 69 | 70 | #region IEnumerator 71 | bool IEnumerator.MoveNext () { 72 | if (m_WasFired) { 73 | ((IEnumerator)this).Reset(); // auto-reset for YieldInstruction reuse 74 | return false; 75 | } 76 | 77 | return true; 78 | } 79 | void IEnumerator.Reset () { m_WasFired = false; } 80 | object IEnumerator.Current { get { return null; } } 81 | #endregion 82 | 83 | } 84 | 85 | } 86 | -------------------------------------------------------------------------------- /Assets/Spine/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "com.esotericsoftware.spine.spine-unity", 3 | "displayName": "spine-unity Runtime", 4 | "description": "This plugin provides the spine-unity runtime core.", 5 | "version": "3.8.0", 6 | "unity": "2018.3", 7 | "author": { 8 | "name": "Esoteric Software", 9 | "email": "contact@esotericsoftware.com", 10 | "url": "http://esotericsoftware.com/" 11 | }, 12 | "dependencies": { 13 | }, 14 | "keywords": [ 15 | "spine", 16 | "spine-unity", 17 | "core" 18 | ] 19 | } 20 | -------------------------------------------------------------------------------- /Assets/Spine/version.txt: -------------------------------------------------------------------------------- 1 | This Spine-Unity runtime works with data exported from Spine Editor version: 3.8.xx 2 | Package version: spine-unity-3.8-2021-11-10.unitypackage 3 | -------------------------------------------------------------------------------- /Packages/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "dependencies": { 3 | "com.unity.2d.animation": "3.2.2", 4 | "com.unity.2d.pixel-perfect": "2.0.4", 5 | "com.unity.2d.psdimporter": "2.1.4", 6 | "com.unity.2d.sprite": "1.0.0", 7 | "com.unity.2d.spriteshape": "3.0.11", 8 | "com.unity.2d.tilemap": "1.0.0", 9 | "com.unity.collab-proxy": "1.2.16", 10 | "com.unity.ide.rider": "1.1.4", 11 | "com.unity.ide.vscode": "1.2.0", 12 | "com.unity.test-framework": "1.1.14", 13 | "com.unity.textmeshpro": "2.0.1", 14 | "com.unity.timeline": "1.2.14", 15 | "com.unity.ugui": "1.0.0", 16 | "com.unity.modules.ai": "1.0.0", 17 | "com.unity.modules.androidjni": "1.0.0", 18 | "com.unity.modules.animation": "1.0.0", 19 | "com.unity.modules.assetbundle": "1.0.0", 20 | "com.unity.modules.audio": "1.0.0", 21 | "com.unity.modules.cloth": "1.0.0", 22 | "com.unity.modules.director": "1.0.0", 23 | "com.unity.modules.imageconversion": "1.0.0", 24 | "com.unity.modules.imgui": "1.0.0", 25 | "com.unity.modules.jsonserialize": "1.0.0", 26 | "com.unity.modules.particlesystem": "1.0.0", 27 | "com.unity.modules.physics": "1.0.0", 28 | "com.unity.modules.physics2d": "1.0.0", 29 | "com.unity.modules.screencapture": "1.0.0", 30 | "com.unity.modules.terrain": "1.0.0", 31 | "com.unity.modules.terrainphysics": "1.0.0", 32 | "com.unity.modules.tilemap": "1.0.0", 33 | "com.unity.modules.ui": "1.0.0", 34 | "com.unity.modules.uielements": "1.0.0", 35 | "com.unity.modules.umbra": "1.0.0", 36 | "com.unity.modules.unityanalytics": "1.0.0", 37 | "com.unity.modules.unitywebrequest": "1.0.0", 38 | "com.unity.modules.unitywebrequestassetbundle": "1.0.0", 39 | "com.unity.modules.unitywebrequestaudio": "1.0.0", 40 | "com.unity.modules.unitywebrequesttexture": "1.0.0", 41 | "com.unity.modules.unitywebrequestwww": "1.0.0", 42 | "com.unity.modules.vehicles": "1.0.0", 43 | "com.unity.modules.video": "1.0.0", 44 | "com.unity.modules.vr": "1.0.0", 45 | "com.unity.modules.wind": "1.0.0", 46 | "com.unity.modules.xr": "1.0.0" 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /ba2wall.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 11.00 3 | # Visual Studio 2010 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spine-unity", "spine-unity.csproj", "{D8F90444-329D-6ED6-EE08-B67E963966BA}" 5 | EndProject 6 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Assembly-CSharp", "Assembly-CSharp.csproj", "{F99AC601-3A6C-18B1-A45E-A8FC94988E5F}" 7 | EndProject 8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "spine-unity-editor", "spine-unity-editor.csproj", "{1E4F342A-5C46-7C95-5177-654EEDDD2022}" 9 | EndProject 10 | Global 11 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 12 | Debug|Any CPU = Debug|Any CPU 13 | Release|Any CPU = Release|Any CPU 14 | EndGlobalSection 15 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 16 | {D8F90444-329D-6ED6-EE08-B67E963966BA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 17 | {D8F90444-329D-6ED6-EE08-B67E963966BA}.Debug|Any CPU.Build.0 = Debug|Any CPU 18 | {D8F90444-329D-6ED6-EE08-B67E963966BA}.Release|Any CPU.ActiveCfg = Release|Any CPU 19 | {D8F90444-329D-6ED6-EE08-B67E963966BA}.Release|Any CPU.Build.0 = Release|Any CPU 20 | {F99AC601-3A6C-18B1-A45E-A8FC94988E5F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 21 | {F99AC601-3A6C-18B1-A45E-A8FC94988E5F}.Debug|Any CPU.Build.0 = Debug|Any CPU 22 | {F99AC601-3A6C-18B1-A45E-A8FC94988E5F}.Release|Any CPU.ActiveCfg = Release|Any CPU 23 | {F99AC601-3A6C-18B1-A45E-A8FC94988E5F}.Release|Any CPU.Build.0 = Release|Any CPU 24 | {1E4F342A-5C46-7C95-5177-654EEDDD2022}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 25 | {1E4F342A-5C46-7C95-5177-654EEDDD2022}.Debug|Any CPU.Build.0 = Debug|Any CPU 26 | {1E4F342A-5C46-7C95-5177-654EEDDD2022}.Release|Any CPU.ActiveCfg = Release|Any CPU 27 | {1E4F342A-5C46-7C95-5177-654EEDDD2022}.Release|Any CPU.Build.0 = Release|Any CPU 28 | EndGlobalSection 29 | GlobalSection(SolutionProperties) = preSolution 30 | HideSolutionNode = FALSE 31 | EndGlobalSection 32 | EndGlobal 33 | --------------------------------------------------------------------------------