mirror of
https://github.com/EsotericSoftware/spine-runtimes.git
synced 2026-03-26 22:49:01 +08:00
[unity] Added SkeletonGraphic blend modes support including new shaders and materials (Advanced - Multiple CanvasRenderers must be enabled). Closes #1316.
This commit is contained in:
parent
620b926dd5
commit
60e67017e6
@ -151,6 +151,7 @@
|
|||||||
* Added an example component `RootMotionDeltaCompensation` located in `Spine Examples/Scripts/Sample Components` which can be used for applying simple delta compensation. You can enable and disable the component to toggle delta compensation of the currently playing animation on and off.
|
* Added an example component `RootMotionDeltaCompensation` located in `Spine Examples/Scripts/Sample Components` which can be used for applying simple delta compensation. You can enable and disable the component to toggle delta compensation of the currently playing animation on and off.
|
||||||
* `SkeletonRagdoll` and `SkeletonRagdoll2D` now support bone scale at any bone in the skeleton hierarchy. This includes negative scale and root bone scale.
|
* `SkeletonRagdoll` and `SkeletonRagdoll2D` now support bone scale at any bone in the skeleton hierarchy. This includes negative scale and root bone scale.
|
||||||
* `Attachment.GetRemappedClone(Sprite)` method now provides an additional optional parameter `useOriginalRegionScale`. When set to `true`, the replaced attachment's scale is used instead of the Sprite's `Pixel per Unity` setting, allowing for more consistent scaling. *Note:* When remapping Sprites, be sure to set the Sprite's `Mesh Type` to `Full Rect` and not `Tight`, otherwise the scale will be wrong.
|
* `Attachment.GetRemappedClone(Sprite)` method now provides an additional optional parameter `useOriginalRegionScale`. When set to `true`, the replaced attachment's scale is used instead of the Sprite's `Pixel per Unity` setting, allowing for more consistent scaling. *Note:* When remapping Sprites, be sure to set the Sprite's `Mesh Type` to `Full Rect` and not `Tight`, otherwise the scale will be wrong.
|
||||||
|
* `SkeletonGraphic` now **supports all Slot blend modes** when `Advanced - Multiple Canvas Renderers` is enabled in the Inspector. The `SkeletonGraphic` Inspector now provides a `Blend Mode Materials` section where you can assign `SkeletonGraphic` materials for each blend mode, or use the new default materials. New `SkeletonGraphic` shaders and materials have been added for each blend mode. The `BlendModes.unity` example scene has been extended to demonstrate this new feature. For detailed information see the [`SkeletonGraphic documentation page`](http://esotericsoftware.com/spine-unity#Parameters).
|
||||||
|
|
||||||
* **Changes of default values**
|
* **Changes of default values**
|
||||||
|
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
@ -49,6 +49,7 @@ namespace Spine.Unity.Editor {
|
|||||||
static GUIStyle ReloadButtonStyle { get { return EditorStyles.miniButton; } }
|
static GUIStyle ReloadButtonStyle { get { return EditorStyles.miniButton; } }
|
||||||
|
|
||||||
SerializedProperty material, color;
|
SerializedProperty material, color;
|
||||||
|
SerializedProperty additiveMaterial, multiplyMaterial, screenMaterial;
|
||||||
SerializedProperty skeletonDataAsset, initialSkinName;
|
SerializedProperty skeletonDataAsset, initialSkinName;
|
||||||
SerializedProperty startingAnimation, startingLoop, timeScale, freeze, updateWhenInvisible, unscaledTime, tintBlack;
|
SerializedProperty startingAnimation, startingLoop, timeScale, freeze, updateWhenInvisible, unscaledTime, tintBlack;
|
||||||
SerializedProperty initialFlipX, initialFlipY;
|
SerializedProperty initialFlipX, initialFlipY;
|
||||||
@ -98,6 +99,10 @@ namespace Spine.Unity.Editor {
|
|||||||
raycastTarget = so.FindProperty("m_RaycastTarget");
|
raycastTarget = so.FindProperty("m_RaycastTarget");
|
||||||
|
|
||||||
// SkeletonRenderer
|
// SkeletonRenderer
|
||||||
|
additiveMaterial = so.FindProperty("additiveMaterial");
|
||||||
|
multiplyMaterial = so.FindProperty("multiplyMaterial");
|
||||||
|
screenMaterial = so.FindProperty("screenMaterial");
|
||||||
|
|
||||||
skeletonDataAsset = so.FindProperty("skeletonDataAsset");
|
skeletonDataAsset = so.FindProperty("skeletonDataAsset");
|
||||||
initialSkinName = so.FindProperty("initialSkinName");
|
initialSkinName = so.FindProperty("initialSkinName");
|
||||||
|
|
||||||
@ -201,6 +206,35 @@ namespace Spine.Unity.Editor {
|
|||||||
}
|
}
|
||||||
EditorGUILayout.EndHorizontal();
|
EditorGUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
var blendModeMaterials = thisSkeletonGraphic.skeletonDataAsset.blendModeMaterials;
|
||||||
|
if (allowMultipleCanvasRenderers.boolValue == true && blendModeMaterials.RequiresBlendModeMaterials) {
|
||||||
|
using (new SpineInspectorUtility.IndentScope()) {
|
||||||
|
EditorGUILayout.BeginHorizontal();
|
||||||
|
EditorGUILayout.LabelField("Blend Mode Materials", EditorStyles.boldLabel);
|
||||||
|
|
||||||
|
if (GUILayout.Button(new GUIContent("Assign Default", "Assign default Blend Mode Materials."),
|
||||||
|
EditorStyles.miniButton, GUILayout.Width(100f))) {
|
||||||
|
AssignDefaultBlendModeMaterials();
|
||||||
|
}
|
||||||
|
EditorGUILayout.EndHorizontal();
|
||||||
|
|
||||||
|
bool usesAdditiveMaterial = blendModeMaterials.applyAdditiveMaterial;
|
||||||
|
bool pmaVertexColors = thisSkeletonGraphic.MeshGenerator.settings.pmaVertexColors;
|
||||||
|
if (pmaVertexColors)
|
||||||
|
using (new EditorGUI.DisabledGroupScope(true)) {
|
||||||
|
EditorGUILayout.LabelField("Additive Material - Unused with PMA Vertex Colors", EditorStyles.label);
|
||||||
|
}
|
||||||
|
else if (usesAdditiveMaterial)
|
||||||
|
EditorGUILayout.PropertyField(additiveMaterial, SpineInspectorUtility.TempContent("Additive Material", null, "SkeletonGraphic Material for 'Additive' blend mode slots. Unused when 'PMA Vertex Colors' is enabled."));
|
||||||
|
else
|
||||||
|
using (new EditorGUI.DisabledGroupScope(true)) {
|
||||||
|
EditorGUILayout.LabelField("No Additive Mat - 'Apply Additive Material' disabled at SkeletonDataAsset", EditorStyles.label);
|
||||||
|
}
|
||||||
|
EditorGUILayout.PropertyField(multiplyMaterial, SpineInspectorUtility.TempContent("Multiply Material", null, "SkeletonGraphic Material for 'Multiply' blend mode slots."));
|
||||||
|
EditorGUILayout.PropertyField(screenMaterial, SpineInspectorUtility.TempContent("Screen Material", null, "SkeletonGraphic Material for 'Screen' blend mode slots."));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
EditorGUILayout.PropertyField(updateWhenInvisible);
|
EditorGUILayout.PropertyField(updateWhenInvisible);
|
||||||
|
|
||||||
// warning box
|
// warning box
|
||||||
@ -299,6 +333,15 @@ namespace Spine.Unity.Editor {
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void AssignDefaultBlendModeMaterials () {
|
||||||
|
foreach (var target in targets) {
|
||||||
|
var skeletonGraphic = (SkeletonGraphic)target;
|
||||||
|
skeletonGraphic.additiveMaterial = DefaultSkeletonGraphicAdditiveMaterial;
|
||||||
|
skeletonGraphic.multiplyMaterial = DefaultSkeletonGraphicMultiplyMaterial;
|
||||||
|
skeletonGraphic.screenMaterial = DefaultSkeletonGraphicScreenMaterial;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public static void SetSeparatorSlotNames (SkeletonRenderer skeletonRenderer, string[] newSlotNames) {
|
public static void SetSeparatorSlotNames (SkeletonRenderer skeletonRenderer, string[] newSlotNames) {
|
||||||
var field = SpineInspectorUtility.GetNonPublicField(typeof(SkeletonRenderer), SeparatorSlotNamesFieldName);
|
var field = SpineInspectorUtility.GetNonPublicField(typeof(SkeletonRenderer), SeparatorSlotNamesFieldName);
|
||||||
field.SetValue(skeletonRenderer, newSlotNames);
|
field.SetValue(skeletonRenderer, newSlotNames);
|
||||||
@ -419,20 +462,37 @@ namespace Spine.Unity.Editor {
|
|||||||
var go = EditorInstantiation.NewGameObject(gameObjectName, true, typeof(RectTransform), typeof(CanvasRenderer), typeof(SkeletonGraphic));
|
var go = EditorInstantiation.NewGameObject(gameObjectName, true, typeof(RectTransform), typeof(CanvasRenderer), typeof(SkeletonGraphic));
|
||||||
var graphic = go.GetComponent<SkeletonGraphic>();
|
var graphic = go.GetComponent<SkeletonGraphic>();
|
||||||
graphic.material = SkeletonGraphicInspector.DefaultSkeletonGraphicMaterial;
|
graphic.material = SkeletonGraphicInspector.DefaultSkeletonGraphicMaterial;
|
||||||
|
graphic.additiveMaterial = SkeletonGraphicInspector.DefaultSkeletonGraphicAdditiveMaterial;
|
||||||
|
graphic.multiplyMaterial = SkeletonGraphicInspector.DefaultSkeletonGraphicMultiplyMaterial;
|
||||||
|
graphic.screenMaterial = SkeletonGraphicInspector.DefaultSkeletonGraphicScreenMaterial;
|
||||||
return go;
|
return go;
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Material DefaultSkeletonGraphicMaterial {
|
public static Material DefaultSkeletonGraphicMaterial {
|
||||||
get {
|
get { return FirstMaterialWithName("SkeletonGraphicDefault"); }
|
||||||
var guids = AssetDatabase.FindAssets("SkeletonGraphicDefault t:material");
|
}
|
||||||
if (guids.Length <= 0) return null;
|
|
||||||
|
|
||||||
var firstAssetPath = AssetDatabase.GUIDToAssetPath(guids[0]);
|
public static Material DefaultSkeletonGraphicAdditiveMaterial {
|
||||||
if (string.IsNullOrEmpty(firstAssetPath)) return null;
|
get { return FirstMaterialWithName("SkeletonGraphicAdditive"); }
|
||||||
|
}
|
||||||
|
|
||||||
var firstMaterial = AssetDatabase.LoadAssetAtPath<Material>(firstAssetPath);
|
public static Material DefaultSkeletonGraphicMultiplyMaterial {
|
||||||
return firstMaterial;
|
get { return FirstMaterialWithName("SkeletonGraphicMultiply"); }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static Material DefaultSkeletonGraphicScreenMaterial {
|
||||||
|
get { return FirstMaterialWithName("SkeletonGraphicScreen"); }
|
||||||
|
}
|
||||||
|
|
||||||
|
protected static Material FirstMaterialWithName (string name) {
|
||||||
|
var guids = AssetDatabase.FindAssets(name + " t:material");
|
||||||
|
if (guids.Length <= 0) return null;
|
||||||
|
|
||||||
|
var firstAssetPath = AssetDatabase.GUIDToAssetPath(guids[0]);
|
||||||
|
if (string.IsNullOrEmpty(firstAssetPath)) return null;
|
||||||
|
|
||||||
|
var firstMaterial = AssetDatabase.LoadAssetAtPath<Material>(firstAssetPath);
|
||||||
|
return firstMaterial;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|||||||
@ -52,6 +52,16 @@ namespace Spine.Unity {
|
|||||||
|
|
||||||
public bool RequiresBlendModeMaterials { get { return requiresBlendModeMaterials; } set { requiresBlendModeMaterials = value; } }
|
public bool RequiresBlendModeMaterials { get { return requiresBlendModeMaterials; } set { requiresBlendModeMaterials = value; } }
|
||||||
|
|
||||||
|
public BlendMode BlendModeForMaterial(Material material) {
|
||||||
|
foreach (var pair in multiplyMaterials)
|
||||||
|
if (pair.material == material) return BlendMode.Multiply;
|
||||||
|
foreach (var pair in additiveMaterials)
|
||||||
|
if (pair.material == material) return BlendMode.Additive;
|
||||||
|
foreach (var pair in screenMaterials)
|
||||||
|
if (pair.material == material) return BlendMode.Screen;
|
||||||
|
return BlendMode.Normal;
|
||||||
|
}
|
||||||
|
|
||||||
#if UNITY_EDITOR
|
#if UNITY_EDITOR
|
||||||
public void TransferSettingsFrom (BlendModeMaterialsAsset modifierAsset) {
|
public void TransferSettingsFrom (BlendModeMaterialsAsset modifierAsset) {
|
||||||
applyAdditiveMaterial = modifierAsset.applyAdditiveMaterial;
|
applyAdditiveMaterial = modifierAsset.applyAdditiveMaterial;
|
||||||
|
|||||||
@ -31,6 +31,7 @@
|
|||||||
#define NEW_PREFAB_SYSTEM
|
#define NEW_PREFAB_SYSTEM
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
using System;
|
||||||
using System.Collections.Generic;
|
using System.Collections.Generic;
|
||||||
using UnityEngine;
|
using UnityEngine;
|
||||||
using UnityEngine.UI;
|
using UnityEngine.UI;
|
||||||
@ -50,6 +51,10 @@ namespace Spine.Unity {
|
|||||||
public SkeletonDataAsset skeletonDataAsset;
|
public SkeletonDataAsset skeletonDataAsset;
|
||||||
public SkeletonDataAsset SkeletonDataAsset { get { return skeletonDataAsset; } }
|
public SkeletonDataAsset SkeletonDataAsset { get { return skeletonDataAsset; } }
|
||||||
|
|
||||||
|
public Material additiveMaterial;
|
||||||
|
public Material multiplyMaterial;
|
||||||
|
public Material screenMaterial;
|
||||||
|
|
||||||
[SpineSkin(dataField:"skeletonDataAsset", defaultAsEmptyString:true)]
|
[SpineSkin(dataField:"skeletonDataAsset", defaultAsEmptyString:true)]
|
||||||
public string initialSkinName;
|
public string initialSkinName;
|
||||||
public bool initialFlipX, initialFlipY;
|
public bool initialFlipX, initialFlipY;
|
||||||
@ -661,6 +666,10 @@ namespace Spine.Unity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
BlendModeMaterials blendModeMaterials = skeletonDataAsset.blendModeMaterials;
|
||||||
|
bool hasBlendModeMaterials = blendModeMaterials.RequiresBlendModeMaterials;
|
||||||
|
bool mainCullTransparentMesh = this.canvasRenderer.cullTransparentMesh;
|
||||||
|
bool pmaVertexColors = meshGenerator.settings.pmaVertexColors;
|
||||||
int targetSiblingIndex = 0;
|
int targetSiblingIndex = 0;
|
||||||
for (int i = 0; i < submeshCount; i++) {
|
for (int i = 0; i < submeshCount; i++) {
|
||||||
var submeshInstructionItem = currentInstructions.submeshInstructions.Items[i];
|
var submeshInstructionItem = currentInstructions.submeshInstructions.Items[i];
|
||||||
@ -692,9 +701,32 @@ namespace Spine.Unity {
|
|||||||
parent = separatorParts[++separatorSlotGroupIndex];
|
parent = separatorParts[++separatorSlotGroupIndex];
|
||||||
}
|
}
|
||||||
|
|
||||||
if (useOriginalTextureAndMaterial)
|
if (useOriginalTextureAndMaterial) {
|
||||||
canvasRenderer.SetMaterial(this.materialForRendering, submeshMaterial.mainTexture);
|
Texture usedTexture = submeshMaterial.mainTexture;
|
||||||
else {
|
if (!hasBlendModeMaterials)
|
||||||
|
canvasRenderer.SetMaterial(this.materialForRendering, usedTexture);
|
||||||
|
else {
|
||||||
|
bool allowCullTransparentMesh = true;
|
||||||
|
BlendMode blendMode = blendModeMaterials.BlendModeForMaterial(submeshMaterial);
|
||||||
|
Material usedMaterial = this.materialForRendering;
|
||||||
|
if (blendMode == BlendMode.Normal) {
|
||||||
|
if (submeshInstructionItem.hasPMAAdditiveSlot)
|
||||||
|
allowCullTransparentMesh = false;
|
||||||
|
} else if (blendMode == BlendMode.Additive) {
|
||||||
|
if (pmaVertexColors)
|
||||||
|
allowCullTransparentMesh = false;
|
||||||
|
else if (additiveMaterial)
|
||||||
|
usedMaterial = additiveMaterial;
|
||||||
|
} else if (blendMode == BlendMode.Multiply && multiplyMaterial)
|
||||||
|
usedMaterial = multiplyMaterial;
|
||||||
|
else if (blendMode == BlendMode.Screen && screenMaterial)
|
||||||
|
usedMaterial = screenMaterial;
|
||||||
|
|
||||||
|
canvasRenderer.SetMaterial(usedMaterial, usedTexture);
|
||||||
|
canvasRenderer.cullTransparentMesh = allowCullTransparentMesh ?
|
||||||
|
mainCullTransparentMesh : false;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
var originalTexture = submeshMaterial.mainTexture;
|
var originalTexture = submeshMaterial.mainTexture;
|
||||||
Material usedMaterial;
|
Material usedMaterial;
|
||||||
Texture usedTexture;
|
Texture usedTexture;
|
||||||
|
|||||||
@ -0,0 +1,98 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SkeletonGraphicAdditive
|
||||||
|
m_Shader: {fileID: 4800000, guid: a1e4ab34b07f81e4e94f0d241c416669, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _AlphaTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- PixelSnap: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _CanvasGroupCompatible: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableExternalAlpha: 0
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineMipLevel: 0
|
||||||
|
- _OutlineReferenceTexWidth: 1024
|
||||||
|
- _OutlineSmoothness: 1
|
||||||
|
- _OutlineWidth: 3
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _StraightAlphaInput: 0
|
||||||
|
- _ThresholdEnd: 0.25
|
||||||
|
- _UVSec: 0
|
||||||
|
- _Use8Neighbourhood: 1
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
||||||
|
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 2e8245019faeb8c43b75f9ca3ac8ee34
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -4,8 +4,9 @@
|
|||||||
Material:
|
Material:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_PrefabParentObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInternal: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: SkeletonGraphicDefault
|
m_Name: SkeletonGraphicDefault
|
||||||
m_Shader: {fileID: 4800000, guid: fa95b0fb6983c0f40a152e6f9aa82bfb, type: 3}
|
m_Shader: {fileID: 4800000, guid: fa95b0fb6983c0f40a152e6f9aa82bfb, type: 3}
|
||||||
m_ShaderKeywords:
|
m_ShaderKeywords:
|
||||||
@ -61,7 +62,7 @@ Material:
|
|||||||
m_Floats:
|
m_Floats:
|
||||||
- PixelSnap: 0
|
- PixelSnap: 0
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
- _CanvasGroupCompatible: 1
|
- _CanvasGroupCompatible: 0
|
||||||
- _ColorMask: 15
|
- _ColorMask: 15
|
||||||
- _Cutoff: 0.5
|
- _Cutoff: 0.5
|
||||||
- _DetailNormalMapScale: 1
|
- _DetailNormalMapScale: 1
|
||||||
@ -71,6 +72,10 @@ Material:
|
|||||||
- _Metallic: 0
|
- _Metallic: 0
|
||||||
- _Mode: 0
|
- _Mode: 0
|
||||||
- _OcclusionStrength: 1
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineMipLevel: 0
|
||||||
|
- _OutlineReferenceTexWidth: 1024
|
||||||
|
- _OutlineSmoothness: 1
|
||||||
|
- _OutlineWidth: 3
|
||||||
- _Parallax: 0.02
|
- _Parallax: 0.02
|
||||||
- _SrcBlend: 1
|
- _SrcBlend: 1
|
||||||
- _Stencil: 0
|
- _Stencil: 0
|
||||||
@ -78,11 +83,16 @@ Material:
|
|||||||
- _StencilOp: 0
|
- _StencilOp: 0
|
||||||
- _StencilReadMask: 255
|
- _StencilReadMask: 255
|
||||||
- _StencilWriteMask: 255
|
- _StencilWriteMask: 255
|
||||||
|
- _StraightAlphaInput: 0
|
||||||
|
- _ThresholdEnd: 0.25
|
||||||
- _UVSec: 0
|
- _UVSec: 0
|
||||||
|
- _Use8Neighbourhood: 1
|
||||||
- _UseUIAlphaClip: 0
|
- _UseUIAlphaClip: 0
|
||||||
- _ZWrite: 1
|
- _ZWrite: 1
|
||||||
m_Colors:
|
m_Colors:
|
||||||
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
||||||
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
|||||||
@ -0,0 +1,98 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SkeletonGraphicDefaultGrayscale
|
||||||
|
m_Shader: {fileID: 4800000, guid: fa95b0fb6983c0f40a152e6f9aa82bfb, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _AlphaTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Floats:
|
||||||
|
- PixelSnap: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _CanvasGroupCompatible: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableExternalAlpha: 0
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineMipLevel: 0
|
||||||
|
- _OutlineReferenceTexWidth: 1024
|
||||||
|
- _OutlineSmoothness: 1
|
||||||
|
- _OutlineWidth: 3
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _StraightAlphaInput: 0
|
||||||
|
- _ThresholdEnd: 0.25
|
||||||
|
- _UVSec: 0
|
||||||
|
- _Use8Neighbourhood: 1
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
||||||
|
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bfc4ecd22354c4d4fb43b85d82efacde
|
||||||
|
timeCreated: 1455140322
|
||||||
|
licenseType: Free
|
||||||
|
NativeFormatImporter:
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -4,11 +4,12 @@
|
|||||||
Material:
|
Material:
|
||||||
serializedVersion: 6
|
serializedVersion: 6
|
||||||
m_ObjectHideFlags: 0
|
m_ObjectHideFlags: 0
|
||||||
m_PrefabParentObject: {fileID: 0}
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
m_PrefabInternal: {fileID: 0}
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
m_Name: SkeletonGraphicDefaultOutline
|
m_Name: SkeletonGraphicDefaultOutline
|
||||||
m_Shader: {fileID: 4800000, guid: 8f5d14d2a7fedb84998c50eb96c8b748, type: 3}
|
m_Shader: {fileID: 4800000, guid: 8f5d14d2a7fedb84998c50eb96c8b748, type: 3}
|
||||||
m_ShaderKeywords: _USE8NEIGHBOURHOOD_ON
|
m_ShaderKeywords: _CANVAS_GROUP_COMPATIBLE _USE8NEIGHBOURHOOD_ON
|
||||||
m_LightmapFlags: 5
|
m_LightmapFlags: 5
|
||||||
m_EnableInstancingVariants: 0
|
m_EnableInstancingVariants: 0
|
||||||
m_DoubleSidedGI: 0
|
m_DoubleSidedGI: 0
|
||||||
@ -58,6 +59,7 @@ Material:
|
|||||||
m_Texture: {fileID: 0}
|
m_Texture: {fileID: 0}
|
||||||
m_Scale: {x: 1, y: 1}
|
m_Scale: {x: 1, y: 1}
|
||||||
m_Offset: {x: 0, y: 0}
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
m_Floats:
|
m_Floats:
|
||||||
- PixelSnap: 0
|
- PixelSnap: 0
|
||||||
- _BumpScale: 1
|
- _BumpScale: 1
|
||||||
@ -94,3 +96,4 @@ Material:
|
|||||||
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||||
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
||||||
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
|
|||||||
@ -0,0 +1,99 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SkeletonGraphicMultiply
|
||||||
|
m_Shader: {fileID: 4800000, guid: cfbf95ed0fe6c554c8c2ee6c8325937c, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _AlphaTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- PixelSnap: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _CanvasGroupCompatible: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableExternalAlpha: 0
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineMipLevel: 0
|
||||||
|
- _OutlineReferenceTexWidth: 1024
|
||||||
|
- _OutlineSmoothness: 1
|
||||||
|
- _OutlineWidth: 3
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _StraightAlphaInput: 0
|
||||||
|
- _ThresholdEnd: 0.25
|
||||||
|
- _UVSec: 0
|
||||||
|
- _Use8Neighbourhood: 1
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
||||||
|
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: e74a1f8978a7da348a721508d0d58834
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,99 @@
|
|||||||
|
%YAML 1.1
|
||||||
|
%TAG !u! tag:unity3d.com,2011:
|
||||||
|
--- !u!21 &2100000
|
||||||
|
Material:
|
||||||
|
serializedVersion: 6
|
||||||
|
m_ObjectHideFlags: 0
|
||||||
|
m_CorrespondingSourceObject: {fileID: 0}
|
||||||
|
m_PrefabInstance: {fileID: 0}
|
||||||
|
m_PrefabAsset: {fileID: 0}
|
||||||
|
m_Name: SkeletonGraphicScreen
|
||||||
|
m_Shader: {fileID: 4800000, guid: c61244023592f95479fddd71b5067683, type: 3}
|
||||||
|
m_ShaderKeywords:
|
||||||
|
m_LightmapFlags: 5
|
||||||
|
m_EnableInstancingVariants: 0
|
||||||
|
m_DoubleSidedGI: 0
|
||||||
|
m_CustomRenderQueue: -1
|
||||||
|
stringTagMap: {}
|
||||||
|
disabledShaderPasses: []
|
||||||
|
m_SavedProperties:
|
||||||
|
serializedVersion: 3
|
||||||
|
m_TexEnvs:
|
||||||
|
- _AlphaTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _BumpMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailAlbedoMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailMask:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _DetailNormalMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _EmissionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MainTex:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _MetallicGlossMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _OcclusionMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
- _ParallaxMap:
|
||||||
|
m_Texture: {fileID: 0}
|
||||||
|
m_Scale: {x: 1, y: 1}
|
||||||
|
m_Offset: {x: 0, y: 0}
|
||||||
|
m_Ints: []
|
||||||
|
m_Floats:
|
||||||
|
- PixelSnap: 0
|
||||||
|
- _BumpScale: 1
|
||||||
|
- _CanvasGroupCompatible: 0
|
||||||
|
- _ColorMask: 15
|
||||||
|
- _Cutoff: 0.5
|
||||||
|
- _DetailNormalMapScale: 1
|
||||||
|
- _DstBlend: 0
|
||||||
|
- _EnableExternalAlpha: 0
|
||||||
|
- _Glossiness: 0.5
|
||||||
|
- _Metallic: 0
|
||||||
|
- _Mode: 0
|
||||||
|
- _OcclusionStrength: 1
|
||||||
|
- _OutlineMipLevel: 0
|
||||||
|
- _OutlineReferenceTexWidth: 1024
|
||||||
|
- _OutlineSmoothness: 1
|
||||||
|
- _OutlineWidth: 3
|
||||||
|
- _Parallax: 0.02
|
||||||
|
- _SrcBlend: 1
|
||||||
|
- _Stencil: 0
|
||||||
|
- _StencilComp: 8
|
||||||
|
- _StencilOp: 0
|
||||||
|
- _StencilReadMask: 255
|
||||||
|
- _StencilWriteMask: 255
|
||||||
|
- _StraightAlphaInput: 0
|
||||||
|
- _ThresholdEnd: 0.25
|
||||||
|
- _UVSec: 0
|
||||||
|
- _Use8Neighbourhood: 1
|
||||||
|
- _UseUIAlphaClip: 0
|
||||||
|
- _ZWrite: 1
|
||||||
|
m_Colors:
|
||||||
|
- _Color: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _EmissionColor: {r: 0, g: 0, b: 0, a: 1}
|
||||||
|
- _Flip: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
- _OutlineColor: {r: 1, g: 1, b: 0, a: 1}
|
||||||
|
- _RendererColor: {r: 1, g: 1, b: 1, a: 1}
|
||||||
|
m_BuildTextureStacks: []
|
||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bab24c479f34eec45be6ea8595891569
|
||||||
|
NativeFormatImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
mainObjectFileID: 2100000
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -181,6 +181,7 @@ namespace Spine.Unity {
|
|||||||
for (int i = 0; i < drawOrderCount; i++) {
|
for (int i = 0; i < drawOrderCount; i++) {
|
||||||
Slot slot = drawOrderItems[i];
|
Slot slot = drawOrderItems[i];
|
||||||
if (!slot.bone.active) continue;
|
if (!slot.bone.active) continue;
|
||||||
|
if (slot.data.blendMode == BlendMode.Additive) current.hasPMAAdditiveSlot = true;
|
||||||
Attachment attachment = slot.attachment;
|
Attachment attachment = slot.attachment;
|
||||||
|
|
||||||
workingAttachmentsItems[i] = attachment;
|
workingAttachmentsItems[i] = attachment;
|
||||||
@ -300,6 +301,7 @@ namespace Spine.Unity {
|
|||||||
for (int i = 0; i < drawOrderCount; i++) {
|
for (int i = 0; i < drawOrderCount; i++) {
|
||||||
Slot slot = drawOrderItems[i];
|
Slot slot = drawOrderItems[i];
|
||||||
if (!slot.bone.active) continue;
|
if (!slot.bone.active) continue;
|
||||||
|
if (slot.data.blendMode == BlendMode.Additive) current.hasPMAAdditiveSlot = true;
|
||||||
Attachment attachment = slot.attachment;
|
Attachment attachment = slot.attachment;
|
||||||
#if SPINE_TRIANGLECHECK
|
#if SPINE_TRIANGLECHECK
|
||||||
workingAttachmentsItems[i] = attachment;
|
workingAttachmentsItems[i] = attachment;
|
||||||
|
|||||||
@ -67,6 +67,7 @@ namespace Spine.Unity {
|
|||||||
public int rawFirstVertexIndex;
|
public int rawFirstVertexIndex;
|
||||||
public bool hasClipping;
|
public bool hasClipping;
|
||||||
#endif
|
#endif
|
||||||
|
public bool hasPMAAdditiveSlot;
|
||||||
|
|
||||||
/// <summary>The number of slots in this SubmeshInstruction's range. Not necessarily the number of attachments.</summary>
|
/// <summary>The number of slots in this SubmeshInstruction's range. Not necessarily the number of attachments.</summary>
|
||||||
public int SlotCount { get { return endSlot - startSlot; } }
|
public int SlotCount { get { return endSlot - startSlot; } }
|
||||||
|
|||||||
@ -0,0 +1,8 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: bd997792eb865a344a3271286a0d9341
|
||||||
|
folderAsset: yes
|
||||||
|
DefaultImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,78 @@
|
|||||||
|
#ifndef SKELETON_GRAPHIC_NORMALPASS_INCLUDED
|
||||||
|
#define SKELETON_GRAPHIC_NORMALPASS_INCLUDED
|
||||||
|
|
||||||
|
#include "UnityCG.cginc"
|
||||||
|
#include "UnityUI.cginc"
|
||||||
|
#include "../../CGIncludes/Spine-Common.cginc"
|
||||||
|
|
||||||
|
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
||||||
|
|
||||||
|
struct VertexInput {
|
||||||
|
float4 vertex : POSITION;
|
||||||
|
float4 color : COLOR;
|
||||||
|
float2 texcoord : TEXCOORD0;
|
||||||
|
UNITY_VERTEX_INPUT_INSTANCE_ID
|
||||||
|
};
|
||||||
|
|
||||||
|
struct VertexOutput {
|
||||||
|
float4 vertex : SV_POSITION;
|
||||||
|
fixed4 color : COLOR;
|
||||||
|
half2 texcoord : TEXCOORD0;
|
||||||
|
float4 worldPosition : TEXCOORD1;
|
||||||
|
UNITY_VERTEX_OUTPUT_STEREO
|
||||||
|
};
|
||||||
|
|
||||||
|
fixed4 _Color;
|
||||||
|
fixed4 _TextureSampleAdd;
|
||||||
|
float4 _ClipRect;
|
||||||
|
|
||||||
|
VertexOutput vert (VertexInput IN) {
|
||||||
|
VertexOutput OUT;
|
||||||
|
|
||||||
|
UNITY_SETUP_INSTANCE_ID(IN);
|
||||||
|
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
|
||||||
|
|
||||||
|
OUT.worldPosition = IN.vertex;
|
||||||
|
OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
|
||||||
|
OUT.texcoord = IN.texcoord;
|
||||||
|
|
||||||
|
#ifdef UNITY_HALF_TEXEL_OFFSET
|
||||||
|
OUT.vertex.xy += (_ScreenParams.zw-1.0) * float2(-1,1);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifdef _CANVAS_GROUP_COMPATIBLE
|
||||||
|
half4 vertexColor = IN.color;
|
||||||
|
// CanvasGroup alpha sets vertex color alpha, but does not premultiply it to rgb components.
|
||||||
|
vertexColor.rgb *= vertexColor.a;
|
||||||
|
// Unfortunately we cannot perform the TargetToGamma and PMAGammaToTarget transformations,
|
||||||
|
// as these would be wrong with modified alpha.
|
||||||
|
#else
|
||||||
|
// Note: CanvasRenderer performs a GammaToTargetSpace conversion on vertex color already,
|
||||||
|
// however incorrectly assuming straight alpha color.
|
||||||
|
float4 vertexColor = PMAGammaToTargetSpace(half4(TargetToGammaSpace(IN.color.rgb), IN.color.a));
|
||||||
|
#endif
|
||||||
|
OUT.color = vertexColor * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
|
||||||
|
return OUT;
|
||||||
|
}
|
||||||
|
|
||||||
|
sampler2D _MainTex;
|
||||||
|
|
||||||
|
fixed4 frag (VertexOutput IN) : SV_Target
|
||||||
|
{
|
||||||
|
half4 texColor = tex2D(_MainTex, IN.texcoord);
|
||||||
|
|
||||||
|
#if defined(_STRAIGHT_ALPHA_INPUT)
|
||||||
|
texColor.rgb *= texColor.a;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
half4 color = (texColor + _TextureSampleAdd) * IN.color;
|
||||||
|
color *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
|
||||||
|
|
||||||
|
#ifdef UNITY_UI_ALPHACLIP
|
||||||
|
clip (color.a - 0.001);
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return color;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif
|
||||||
@ -0,0 +1,7 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: 7f1f20f6ddb670f4998f78d0417912ee
|
||||||
|
ShaderIncludeImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
// This is a premultiply-alpha adaptation of the built-in Unity shader "UI/Default" in Unity 5.6.2 to allow Unity UI stencil masking.
|
||||||
|
|
||||||
|
Shader "Spine/SkeletonGraphic Additive"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
|
||||||
|
[Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
|
||||||
|
[Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 1
|
||||||
|
_Color ("Tint", Color) = (1,1,1,1)
|
||||||
|
|
||||||
|
[HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
[HideInInspector] _Stencil ("Stencil ID", Float) = 0
|
||||||
|
[HideInInspector][Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
[HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
[HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
[HideInInspector] _ColorMask ("Color Mask", Float) = 15
|
||||||
|
|
||||||
|
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
|
||||||
|
|
||||||
|
// Outline properties are drawn via custom editor.
|
||||||
|
[HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0
|
||||||
|
[HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1)
|
||||||
|
[HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024
|
||||||
|
[HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25
|
||||||
|
[HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0
|
||||||
|
[HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1
|
||||||
|
[HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
"PreviewType"="Plane"
|
||||||
|
"CanUseSpriteAtlas"="True"
|
||||||
|
}
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull Off
|
||||||
|
Lighting Off
|
||||||
|
ZWrite Off
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
Fog { Mode Off }
|
||||||
|
Blend One One
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
//UsePass "Spine/SkeletonGraphic/NORMAL"
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "Normal"
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
|
||||||
|
#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
#pragma target 2.0
|
||||||
|
|
||||||
|
#include "CGIncludes/Spine-SkeletonGraphic-NormalPass.cginc"
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CustomEditor "SpineShaderWithOutlineGUI"
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: a1e4ab34b07f81e4e94f0d241c416669
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
preprocessorOverride: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
// This is a premultiply-alpha adaptation of the built-in Unity shader "UI/Default" in Unity 5.6.2 to allow Unity UI stencil masking.
|
||||||
|
|
||||||
|
Shader "Spine/SkeletonGraphic Multiply"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
|
||||||
|
[Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
|
||||||
|
[Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 1
|
||||||
|
_Color ("Tint", Color) = (1,1,1,1)
|
||||||
|
|
||||||
|
[HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
[HideInInspector] _Stencil ("Stencil ID", Float) = 0
|
||||||
|
[HideInInspector][Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
[HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
[HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
[HideInInspector] _ColorMask ("Color Mask", Float) = 15
|
||||||
|
|
||||||
|
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
|
||||||
|
|
||||||
|
// Outline properties are drawn via custom editor.
|
||||||
|
[HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0
|
||||||
|
[HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1)
|
||||||
|
[HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024
|
||||||
|
[HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25
|
||||||
|
[HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0
|
||||||
|
[HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1
|
||||||
|
[HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
"PreviewType"="Plane"
|
||||||
|
"CanUseSpriteAtlas"="True"
|
||||||
|
}
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull Off
|
||||||
|
Lighting Off
|
||||||
|
ZWrite Off
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
Fog { Mode Off }
|
||||||
|
Blend DstColor OneMinusSrcAlpha
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
//UsePass "Spine/SkeletonGraphic/NORMAL"
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "Normal"
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
|
||||||
|
#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
#pragma target 2.0
|
||||||
|
|
||||||
|
#include "CGIncludes/Spine-SkeletonGraphic-NormalPass.cginc"
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CustomEditor "SpineShaderWithOutlineGUI"
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: cfbf95ed0fe6c554c8c2ee6c8325937c
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
preprocessorOverride: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -0,0 +1,77 @@
|
|||||||
|
// This is a premultiply-alpha adaptation of the built-in Unity shader "UI/Default" in Unity 5.6.2 to allow Unity UI stencil masking.
|
||||||
|
|
||||||
|
Shader "Spine/SkeletonGraphic Screen"
|
||||||
|
{
|
||||||
|
Properties
|
||||||
|
{
|
||||||
|
[PerRendererData] _MainTex ("Sprite Texture", 2D) = "white" {}
|
||||||
|
[Toggle(_STRAIGHT_ALPHA_INPUT)] _StraightAlphaInput("Straight Alpha Texture", Int) = 0
|
||||||
|
[Toggle(_CANVAS_GROUP_COMPATIBLE)] _CanvasGroupCompatible("CanvasGroup Compatible", Int) = 1
|
||||||
|
_Color ("Tint", Color) = (1,1,1,1)
|
||||||
|
|
||||||
|
[HideInInspector][Enum(UnityEngine.Rendering.CompareFunction)] _StencilComp ("Stencil Comparison", Float) = 8
|
||||||
|
[HideInInspector] _Stencil ("Stencil ID", Float) = 0
|
||||||
|
[HideInInspector][Enum(UnityEngine.Rendering.StencilOp)] _StencilOp ("Stencil Operation", Float) = 0
|
||||||
|
[HideInInspector] _StencilWriteMask ("Stencil Write Mask", Float) = 255
|
||||||
|
[HideInInspector] _StencilReadMask ("Stencil Read Mask", Float) = 255
|
||||||
|
|
||||||
|
[HideInInspector] _ColorMask ("Color Mask", Float) = 15
|
||||||
|
|
||||||
|
[Toggle(UNITY_UI_ALPHACLIP)] _UseUIAlphaClip ("Use Alpha Clip", Float) = 0
|
||||||
|
|
||||||
|
// Outline properties are drawn via custom editor.
|
||||||
|
[HideInInspector] _OutlineWidth("Outline Width", Range(0,8)) = 3.0
|
||||||
|
[HideInInspector] _OutlineColor("Outline Color", Color) = (1,1,0,1)
|
||||||
|
[HideInInspector] _OutlineReferenceTexWidth("Reference Texture Width", Int) = 1024
|
||||||
|
[HideInInspector] _ThresholdEnd("Outline Threshold", Range(0,1)) = 0.25
|
||||||
|
[HideInInspector] _OutlineSmoothness("Outline Smoothness", Range(0,1)) = 1.0
|
||||||
|
[HideInInspector][MaterialToggle(_USE8NEIGHBOURHOOD_ON)] _Use8Neighbourhood("Sample 8 Neighbours", Float) = 1
|
||||||
|
[HideInInspector] _OutlineMipLevel("Outline Mip Level", Range(0,3)) = 0
|
||||||
|
}
|
||||||
|
|
||||||
|
SubShader
|
||||||
|
{
|
||||||
|
Tags
|
||||||
|
{
|
||||||
|
"Queue"="Transparent"
|
||||||
|
"IgnoreProjector"="True"
|
||||||
|
"RenderType"="Transparent"
|
||||||
|
"PreviewType"="Plane"
|
||||||
|
"CanUseSpriteAtlas"="True"
|
||||||
|
}
|
||||||
|
|
||||||
|
Stencil
|
||||||
|
{
|
||||||
|
Ref [_Stencil]
|
||||||
|
Comp [_StencilComp]
|
||||||
|
Pass [_StencilOp]
|
||||||
|
ReadMask [_StencilReadMask]
|
||||||
|
WriteMask [_StencilWriteMask]
|
||||||
|
}
|
||||||
|
|
||||||
|
Cull Off
|
||||||
|
Lighting Off
|
||||||
|
ZWrite Off
|
||||||
|
ZTest [unity_GUIZTestMode]
|
||||||
|
Fog { Mode Off }
|
||||||
|
Blend One OneMinusSrcColor
|
||||||
|
ColorMask [_ColorMask]
|
||||||
|
|
||||||
|
//UsePass "Spine/SkeletonGraphic/NORMAL"
|
||||||
|
Pass
|
||||||
|
{
|
||||||
|
Name "Normal"
|
||||||
|
|
||||||
|
CGPROGRAM
|
||||||
|
#pragma shader_feature _ _STRAIGHT_ALPHA_INPUT
|
||||||
|
#pragma shader_feature _ _CANVAS_GROUP_COMPATIBLE
|
||||||
|
#pragma vertex vert
|
||||||
|
#pragma fragment frag
|
||||||
|
#pragma target 2.0
|
||||||
|
|
||||||
|
#include "CGIncludes/Spine-SkeletonGraphic-NormalPass.cginc"
|
||||||
|
ENDCG
|
||||||
|
}
|
||||||
|
}
|
||||||
|
CustomEditor "SpineShaderWithOutlineGUI"
|
||||||
|
}
|
||||||
@ -0,0 +1,10 @@
|
|||||||
|
fileFormatVersion: 2
|
||||||
|
guid: c61244023592f95479fddd71b5067683
|
||||||
|
ShaderImporter:
|
||||||
|
externalObjects: {}
|
||||||
|
defaultTextures: []
|
||||||
|
nonModifiableTextures: []
|
||||||
|
preprocessorOverride: 0
|
||||||
|
userData:
|
||||||
|
assetBundleName:
|
||||||
|
assetBundleVariant:
|
||||||
@ -68,79 +68,7 @@ Shader "Spine/SkeletonGraphic"
|
|||||||
#pragma fragment frag
|
#pragma fragment frag
|
||||||
#pragma target 2.0
|
#pragma target 2.0
|
||||||
|
|
||||||
#include "UnityCG.cginc"
|
#include "CGIncludes/Spine-SkeletonGraphic-NormalPass.cginc"
|
||||||
#include "UnityUI.cginc"
|
|
||||||
#include "../CGIncludes/Spine-Common.cginc"
|
|
||||||
|
|
||||||
#pragma multi_compile __ UNITY_UI_ALPHACLIP
|
|
||||||
|
|
||||||
struct VertexInput {
|
|
||||||
float4 vertex : POSITION;
|
|
||||||
float4 color : COLOR;
|
|
||||||
float2 texcoord : TEXCOORD0;
|
|
||||||
UNITY_VERTEX_INPUT_INSTANCE_ID
|
|
||||||
};
|
|
||||||
|
|
||||||
struct VertexOutput {
|
|
||||||
float4 vertex : SV_POSITION;
|
|
||||||
fixed4 color : COLOR;
|
|
||||||
half2 texcoord : TEXCOORD0;
|
|
||||||
float4 worldPosition : TEXCOORD1;
|
|
||||||
UNITY_VERTEX_OUTPUT_STEREO
|
|
||||||
};
|
|
||||||
|
|
||||||
fixed4 _Color;
|
|
||||||
fixed4 _TextureSampleAdd;
|
|
||||||
float4 _ClipRect;
|
|
||||||
|
|
||||||
VertexOutput vert (VertexInput IN) {
|
|
||||||
VertexOutput OUT;
|
|
||||||
|
|
||||||
UNITY_SETUP_INSTANCE_ID(IN);
|
|
||||||
UNITY_INITIALIZE_VERTEX_OUTPUT_STEREO(OUT);
|
|
||||||
|
|
||||||
OUT.worldPosition = IN.vertex;
|
|
||||||
OUT.vertex = UnityObjectToClipPos(OUT.worldPosition);
|
|
||||||
OUT.texcoord = IN.texcoord;
|
|
||||||
|
|
||||||
#ifdef UNITY_HALF_TEXEL_OFFSET
|
|
||||||
OUT.vertex.xy += (_ScreenParams.zw-1.0) * float2(-1,1);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#ifdef _CANVAS_GROUP_COMPATIBLE
|
|
||||||
half4 vertexColor = IN.color;
|
|
||||||
// CanvasGroup alpha sets vertex color alpha, but does not premultiply it to rgb components.
|
|
||||||
vertexColor.rgb *= vertexColor.a;
|
|
||||||
// Unfortunately we cannot perform the TargetToGamma and PMAGammaToTarget transformations,
|
|
||||||
// as these would be wrong with modified alpha.
|
|
||||||
#else
|
|
||||||
// Note: CanvasRenderer performs a GammaToTargetSpace conversion on vertex color already,
|
|
||||||
// however incorrectly assuming straight alpha color.
|
|
||||||
float4 vertexColor = PMAGammaToTargetSpace(half4(TargetToGammaSpace(IN.color.rgb), IN.color.a));
|
|
||||||
#endif
|
|
||||||
OUT.color = vertexColor * float4(_Color.rgb * _Color.a, _Color.a); // Combine a PMA version of _Color with vertexColor.
|
|
||||||
return OUT;
|
|
||||||
}
|
|
||||||
|
|
||||||
sampler2D _MainTex;
|
|
||||||
|
|
||||||
fixed4 frag (VertexOutput IN) : SV_Target
|
|
||||||
{
|
|
||||||
half4 texColor = tex2D(_MainTex, IN.texcoord);
|
|
||||||
|
|
||||||
#if defined(_STRAIGHT_ALPHA_INPUT)
|
|
||||||
texColor.rgb *= texColor.a;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
half4 color = (texColor + _TextureSampleAdd) * IN.color;
|
|
||||||
color *= UnityGet2DClipping(IN.worldPosition.xy, _ClipRect);
|
|
||||||
|
|
||||||
#ifdef UNITY_UI_ALPHACLIP
|
|
||||||
clip (color.a - 0.001);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return color;
|
|
||||||
}
|
|
||||||
ENDCG
|
ENDCG
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user