diff --git a/spine-unity/Assets/Examples/Other Examples/Instantiate from Script.unity b/spine-unity/Assets/Examples/Other Examples/Instantiate from Script.unity new file mode 100644 index 000000000..aa6afdda8 --- /dev/null +++ b/spine-unity/Assets/Examples/Other Examples/Instantiate from Script.unity @@ -0,0 +1,288 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!29 &1 +OcclusionCullingSettings: + m_ObjectHideFlags: 0 + serializedVersion: 2 + m_OcclusionBakeSettings: + smallestOccluder: 5 + smallestHole: 0.25 + backfaceThreshold: 100 + m_SceneGUID: 00000000000000000000000000000000 + m_OcclusionCullingData: {fileID: 0} +--- !u!104 &2 +RenderSettings: + m_ObjectHideFlags: 0 + serializedVersion: 8 + m_Fog: 0 + m_FogColor: {r: 0.5, g: 0.5, b: 0.5, a: 1} + m_FogMode: 3 + m_FogDensity: 0.01 + m_LinearFogStart: 0 + m_LinearFogEnd: 300 + m_AmbientSkyColor: {r: 0.212, g: 0.227, b: 0.259, a: 1} + m_AmbientEquatorColor: {r: 0.114, g: 0.125, b: 0.133, a: 1} + m_AmbientGroundColor: {r: 0.047, g: 0.043, b: 0.035, a: 1} + m_AmbientIntensity: 1 + m_AmbientMode: 3 + m_SubtractiveShadowColor: {r: 0.42, g: 0.478, b: 0.627, a: 1} + m_SkyboxMaterial: {fileID: 0} + m_HaloStrength: 0.5 + m_FlareStrength: 1 + m_FlareFadeSpeed: 3 + m_HaloTexture: {fileID: 0} + m_SpotCookie: {fileID: 10001, guid: 0000000000000000e000000000000000, type: 0} + m_DefaultReflectionMode: 0 + m_DefaultReflectionResolution: 128 + m_ReflectionBounces: 1 + m_ReflectionIntensity: 1 + m_CustomReflection: {fileID: 0} + m_Sun: {fileID: 0} + m_IndirectSpecularColor: {r: 0, g: 0, b: 0, a: 1} +--- !u!157 &3 +LightmapSettings: + m_ObjectHideFlags: 0 + serializedVersion: 9 + m_GIWorkflowMode: 1 + m_GISettings: + serializedVersion: 2 + m_BounceScale: 1 + m_IndirectOutputScale: 1 + m_AlbedoBoost: 1 + m_TemporalCoherenceThreshold: 1 + m_EnvironmentLightingMode: 0 + m_EnableBakedLightmaps: 0 + m_EnableRealtimeLightmaps: 0 + m_LightmapEditorSettings: + serializedVersion: 8 + m_Resolution: 2 + m_BakeResolution: 40 + m_TextureWidth: 1024 + m_TextureHeight: 1024 + m_AO: 0 + m_AOMaxDistance: 1 + m_CompAOExponent: 1 + m_CompAOExponentDirect: 0 + m_Padding: 2 + m_LightmapParameters: {fileID: 0} + m_LightmapsBakeMode: 1 + m_TextureCompression: 1 + m_FinalGather: 0 + m_FinalGatherFiltering: 1 + m_FinalGatherRayCount: 256 + m_ReflectionCompression: 2 + m_MixedBakeMode: 3 + m_BakeBackend: 0 + m_PVRSampling: 1 + m_PVRDirectSampleCount: 32 + m_PVRSampleCount: 500 + m_PVRBounces: 2 + m_PVRFiltering: 0 + m_PVRFilteringMode: 1 + m_PVRCulling: 1 + m_PVRFilteringGaussRadiusDirect: 1 + m_PVRFilteringGaussRadiusIndirect: 5 + m_PVRFilteringGaussRadiusAO: 2 + m_PVRFilteringAtrousColorSigma: 1 + m_PVRFilteringAtrousNormalSigma: 1 + m_PVRFilteringAtrousPositionSigma: 1 + m_LightingDataAsset: {fileID: 0} + m_ShadowMaskMode: 2 +--- !u!196 &4 +NavMeshSettings: + serializedVersion: 2 + m_ObjectHideFlags: 0 + m_BuildSettings: + serializedVersion: 2 + agentTypeID: 0 + agentRadius: 0.5 + agentHeight: 2 + agentSlope: 45 + agentClimb: 0.4 + ledgeDropHeight: 0 + maxJumpAcrossDistance: 0 + minRegionArea: 2 + manualCellSize: 0 + cellSize: 0.16666667 + manualTileSize: 0 + tileSize: 256 + accuratePlacement: 0 + m_NavMeshData: {fileID: 0} +--- !u!1 &433620963 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 433620968} + - component: {fileID: 433620967} + - component: {fileID: 433620966} + - component: {fileID: 433620965} + - component: {fileID: 433620964} + m_Layer: 0 + m_Name: Main Camera + m_TagString: MainCamera + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!81 &433620964 +AudioListener: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 433620963} + m_Enabled: 1 +--- !u!124 &433620965 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 433620963} + m_Enabled: 1 +--- !u!92 &433620966 +Behaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 433620963} + m_Enabled: 1 +--- !u!20 &433620967 +Camera: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 433620963} + m_Enabled: 1 + serializedVersion: 2 + m_ClearFlags: 1 + m_BackGroundColor: {r: 0.19215687, g: 0.3019608, b: 0.4745098, a: 0} + m_NormalizedViewPortRect: + serializedVersion: 2 + x: 0 + y: 0 + width: 1 + height: 1 + near clip plane: 0.3 + far clip plane: 1000 + field of view: 60 + orthographic: 1 + orthographic size: 5 + m_Depth: -1 + m_CullingMask: + serializedVersion: 2 + m_Bits: 4294967295 + m_RenderingPath: -1 + m_TargetTexture: {fileID: 0} + m_TargetDisplay: 0 + m_TargetEye: 3 + m_HDR: 1 + m_AllowMSAA: 1 + m_ForceIntoRT: 0 + m_OcclusionCulling: 1 + m_StereoConvergence: 10 + m_StereoSeparation: 0.022 + m_StereoMirrorMode: 0 +--- !u!4 &433620968 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 433620963} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: -10} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 0 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &651278528 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 651278530} + - component: {fileID: 651278529} + m_Layer: 0 + m_Name: 2 DataAssets from Exports + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &651278529 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 651278528} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: bb0837af7345d504db63d0c662fd12dc, type: 3} + m_Name: + m_EditorClassIdentifier: + skeletonJson: {fileID: 4900000, guid: e3b64d7eaf0de4e45a00b7065166554d, type: 3} + atlasText: {fileID: 4900000, guid: 5c0a5c36970a46e4d8378760ab4a4cfc, type: 3} + textures: + - {fileID: 2800000, guid: 49bb65eefe08e424bbf7a38bc98ec638, type: 3} + materialPropertySource: {fileID: 2100000, guid: 365eb017d7ae7134d820c8b808eeb121, + type: 2} +--- !u!4 &651278530 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 651278528} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 2 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} +--- !u!1 &1807176298 +GameObject: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + serializedVersion: 5 + m_Component: + - component: {fileID: 1807176300} + - component: {fileID: 1807176299} + m_Layer: 0 + m_Name: 1 Spawn from SkeletonData + m_TagString: Untagged + m_Icon: {fileID: 0} + m_NavMeshLayer: 0 + m_StaticEditorFlags: 0 + m_IsActive: 1 +--- !u!114 &1807176299 +MonoBehaviour: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1807176298} + m_Enabled: 1 + m_EditorHideFlags: 0 + m_Script: {fileID: 11500000, guid: 7193e2e00836b124191dcae19e6c9741, type: 3} + m_Name: + m_EditorClassIdentifier: + skeletonDataAsset: {fileID: 11400000, guid: 57484171e9b9c7243aa3117bc663e7b9, type: 2} + count: 50 + startingAnimation: animation +--- !u!4 &1807176300 +Transform: + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_GameObject: {fileID: 1807176298} + m_LocalRotation: {x: 0, y: 0, z: 0, w: 1} + m_LocalPosition: {x: 0, y: 0, z: 0} + m_LocalScale: {x: 1, y: 1, z: 1} + m_Children: [] + m_Father: {fileID: 0} + m_RootOrder: 1 + m_LocalEulerAnglesHint: {x: 0, y: 0, z: 0} diff --git a/spine-unity/Assets/Examples/Other Examples/Instantiate from Script.unity.meta b/spine-unity/Assets/Examples/Other Examples/Instantiate from Script.unity.meta new file mode 100644 index 000000000..c684a77a8 --- /dev/null +++ b/spine-unity/Assets/Examples/Other Examples/Instantiate from Script.unity.meta @@ -0,0 +1,8 @@ +fileFormatVersion: 2 +guid: 59dc5776e19e2f041b1cac961a86924f +timeCreated: 1500249265 +licenseType: Free +DefaultImporter: + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/Examples/Scripts/DataAssetsFromExportsExample.cs b/spine-unity/Assets/Examples/Scripts/DataAssetsFromExportsExample.cs new file mode 100644 index 000000000..c25994a4c --- /dev/null +++ b/spine-unity/Assets/Examples/Scripts/DataAssetsFromExportsExample.cs @@ -0,0 +1,44 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Spine.Unity.Examples { + public class DataAssetsFromExportsExample : MonoBehaviour { + + public TextAsset skeletonJson; + public TextAsset atlasText; + public Texture2D[] textures; + public Material materialPropertySource; + + AtlasAsset runtimeAtlasAsset; + SkeletonDataAsset runtimeSkeletonDataAsset; + SkeletonAnimation runtimeSkeletonAnimation; + + void CreateRuntimeAssetsAndGameObject () { + // 1. Create the AtlasAsset (needs atlas text asset and textures, and materials/shader); + // 2. Create SkeletonDataAsset (needs json or binary asset file, and an AtlasAsset) + // 3. Create SkeletonAnimation (needs a valid SkeletonDataAsset) + + runtimeAtlasAsset = AtlasAsset.CreateRuntimeInstance(atlasText, textures, materialPropertySource, true); + runtimeSkeletonDataAsset = SkeletonDataAsset.CreateRuntimeInstance(skeletonJson, runtimeAtlasAsset, true); + } + + IEnumerator Start () { + CreateRuntimeAssetsAndGameObject(); + runtimeSkeletonDataAsset.GetSkeletonData(false); // preload. + yield return new WaitForSeconds(0.5f); + + runtimeSkeletonAnimation = SkeletonAnimation.NewSkeletonAnimationGameObject(runtimeSkeletonDataAsset); + + // Extra Stuff + runtimeSkeletonAnimation.Initialize(false); + runtimeSkeletonAnimation.Skeleton.SetSkin("base"); + runtimeSkeletonAnimation.Skeleton.SetSlotsToSetupPose(); + runtimeSkeletonAnimation.AnimationState.SetAnimation(0, "run", true); + runtimeSkeletonAnimation.GetComponent().sortingOrder = 10; + runtimeSkeletonAnimation.transform.Translate(Vector3.down * 2); + + } + } + +} diff --git a/spine-unity/Assets/Examples/Scripts/DataAssetsFromExportsExample.cs.meta b/spine-unity/Assets/Examples/Scripts/DataAssetsFromExportsExample.cs.meta new file mode 100644 index 000000000..680fe1127 --- /dev/null +++ b/spine-unity/Assets/Examples/Scripts/DataAssetsFromExportsExample.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: bb0837af7345d504db63d0c662fd12dc +timeCreated: 1500249349 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/Examples/Scripts/MixAndMatch.cs b/spine-unity/Assets/Examples/Scripts/MixAndMatch.cs index 9f0e69ea9..05a1e81e3 100644 --- a/spine-unity/Assets/Examples/Scripts/MixAndMatch.cs +++ b/spine-unity/Assets/Examples/Scripts/MixAndMatch.cs @@ -39,7 +39,7 @@ namespace Spine.Unity.Examples { #region Inspector [SpineSkin] - public string baseSkinName = "base"; + public string templateAttachmentsSkin = "base"; public Material sourceMaterial; // This will be used as the basis for shader and material property settings. [Header("Visor")] @@ -83,26 +83,25 @@ namespace Spine.Unity.Examples { // STEP 0: PREPARE SKINS // Let's prepare a new skin to be our custom skin with equips/customizations. We get a clone so our original skins are unaffected. customSkin = customSkin ?? new Skin("custom skin"); // This requires that all customizations are done with skin placeholders defined in Spine. - //customSkin = customSkin ?? skeleton.UnshareSkin(true, false, skeletonAnimation.AnimationState); // use this if you are not customizing on the default skin and don't plan to remove - // Next let's - var baseSkin = skeleton.Data.FindSkin(baseSkinName); + //customSkin = customSkin ?? skeleton.UnshareSkin(true, false, skeletonAnimation.AnimationState); // use this if you are not customizing on the default skin. + var templateSkin = skeleton.Data.FindSkin(templateAttachmentsSkin); // STEP 1: "EQUIP" ITEMS USING SPRITES - // STEP 1.1 Find the original attachment. - // Step 1.2 Get a clone of the original attachment. + // STEP 1.1 Find the original/template attachment. + // Step 1.2 Get a clone of the original/template attachment. // Step 1.3 Apply the Sprite image to the clone. // Step 1.4 Add the remapped clone to the new custom skin. // Let's do this for the visor. int visorSlotIndex = skeleton.FindSlotIndex(visorSlot); // You can access GetAttachment and SetAttachment via string, but caching the slotIndex is faster. - Attachment baseAttachment = baseSkin.GetAttachment(visorSlotIndex, visorKey); // STEP 1.1 - Attachment newAttachment = baseAttachment.GetRemappedClone(visorSprite, sourceMaterial); // STEP 1.2 - 1.3 + Attachment templateAttachment = templateSkin.GetAttachment(visorSlotIndex, visorKey); // STEP 1.1 + Attachment newAttachment = templateAttachment.GetRemappedClone(visorSprite, sourceMaterial); // STEP 1.2 - 1.3 customSkin.SetAttachment(visorSlotIndex, visorKey, newAttachment); // STEP 1.4 // And now for the gun. int gunSlotIndex = skeleton.FindSlotIndex(gunSlot); - Attachment baseGun = baseSkin.GetAttachment(gunSlotIndex, gunKey); // STEP 1.1 - Attachment newGun = baseGun.GetRemappedClone(gunSprite, sourceMaterial); // STEP 1.2 - 1.3 + Attachment templateGun = templateSkin.GetAttachment(gunSlotIndex, gunKey); // STEP 1.1 + Attachment newGun = templateGun.GetRemappedClone(gunSprite, sourceMaterial); // STEP 1.2 - 1.3 if (newGun != null) customSkin.SetAttachment(gunSlotIndex, gunKey, newGun); // STEP 1.4 // customSkin.RemoveAttachment(gunSlotIndex, gunKey); // To remove an item. @@ -119,17 +118,17 @@ namespace Spine.Unity.Examples { // Under the hood, this relies on if (repack) { var repackedSkin = new Skin("repacked skin"); - repackedSkin.Append(skeleton.Data.DefaultSkin); - repackedSkin.Append(customSkin); - repackedSkin = repackedSkin.GetRepackedSkin("repacked skin", sourceMaterial, out runtimeMaterial, out runtimeAtlas); - skeleton.SetSkin(repackedSkin); + repackedSkin.Append(skeleton.Data.DefaultSkin); // Include the "default" skin. (everything outside of skin placeholders) + repackedSkin.Append(customSkin); // Include your new custom skin. + repackedSkin = repackedSkin.GetRepackedSkin("repacked skin", sourceMaterial, out runtimeMaterial, out runtimeAtlas); // Pack all the items in the skin. + skeleton.SetSkin(repackedSkin); // Assign the repacked skin to your Skeleton. if (bbFollower != null) bbFollower.Initialize(true); } else { - skeleton.SetSkin(customSkin); + skeleton.SetSkin(customSkin); // Just use the custom skin directly. } - - skeleton.SetSlotsToSetupPose(); - skeletonAnimation.Update(0); + + skeleton.SetSlotsToSetupPose(); // Use the pose from setup pose. + skeletonAnimation.Update(0); // Use the pose in the currently active animation. Resources.UnloadUnusedAssets(); } diff --git a/spine-unity/Assets/Examples/Scripts/SpawnFromSkeletonDataExample.cs b/spine-unity/Assets/Examples/Scripts/SpawnFromSkeletonDataExample.cs new file mode 100644 index 000000000..49a57a355 --- /dev/null +++ b/spine-unity/Assets/Examples/Scripts/SpawnFromSkeletonDataExample.cs @@ -0,0 +1,42 @@ +using System.Collections; +using System.Collections.Generic; +using UnityEngine; + +namespace Spine.Unity.Examples { + public class SpawnFromSkeletonDataExample : MonoBehaviour { + + public SkeletonDataAsset skeletonDataAsset; + [Range(0, 100)] + public int count = 20; + + [SpineAnimation(dataField:"skeletonDataAsset")] + public string startingAnimation; + + IEnumerator Start () { + if (skeletonDataAsset == null) yield break; + skeletonDataAsset.GetSkeletonData(false); // Preload SkeletonDataAsset. + yield return new WaitForSeconds(1f); // Pretend stuff is happening. + + var spineAnimation = skeletonDataAsset.GetSkeletonData(false).FindAnimation(startingAnimation); + for (int i = 0; i < count; i++) { + var sa = SkeletonAnimation.NewSkeletonAnimationGameObject(skeletonDataAsset); // Spawn a new SkeletonAnimation GameObject. + DoExtraStuff(sa, spineAnimation); // optional stuff for fun. + sa.gameObject.name = i.ToString(); + yield return new WaitForSeconds(1f/8f); + } + + } + + void DoExtraStuff (SkeletonAnimation sa, Spine.Animation spineAnimation) { + sa.transform.localPosition = Random.insideUnitCircle * 6f; + sa.transform.SetParent(this.transform, false); + + if (spineAnimation != null) { + sa.Initialize(false); + sa.AnimationState.SetAnimation(0, spineAnimation, true); + } + } + + } + +} diff --git a/spine-unity/Assets/Examples/Scripts/SpawnFromSkeletonDataExample.cs.meta b/spine-unity/Assets/Examples/Scripts/SpawnFromSkeletonDataExample.cs.meta new file mode 100644 index 000000000..2bcff9bec --- /dev/null +++ b/spine-unity/Assets/Examples/Scripts/SpawnFromSkeletonDataExample.cs.meta @@ -0,0 +1,12 @@ +fileFormatVersion: 2 +guid: 7193e2e00836b124191dcae19e6c9741 +timeCreated: 1500249330 +licenseType: Free +MonoImporter: + serializedVersion: 2 + defaultReferences: [] + executionOrder: 0 + icon: {instanceID: 0} + userData: + assetBundleName: + assetBundleVariant: diff --git a/spine-unity/Assets/Examples/Spine/Dragon/dragon_SkeletonData.asset b/spine-unity/Assets/Examples/Spine/Dragon/dragon_SkeletonData.asset index 74028988b..5c16dab6d 100644 --- a/spine-unity/Assets/Examples/Spine/Dragon/dragon_SkeletonData.asset +++ b/spine-unity/Assets/Examples/Spine/Dragon/dragon_SkeletonData.asset @@ -13,8 +13,8 @@ MonoBehaviour: m_EditorClassIdentifier: atlasAssets: - {fileID: 11400000, guid: 6f86779b1deba7c4aaec1f5895510b57, type: 2} - skeletonJSON: {fileID: 4900000, guid: 95c98e245823e2243a1d8e7a1ef16c51, type: 3} scale: 0.01 + skeletonJSON: {fileID: 4900000, guid: 95c98e245823e2243a1d8e7a1ef16c51, type: 3} fromAnimation: [] toAnimation: [] duration: [] diff --git a/spine-unity/Assets/Examples/Spine/Runtime Template Material.mat b/spine-unity/Assets/Examples/Spine/Runtime Template Material.mat new file mode 100644 index 000000000..4738491da --- /dev/null +++ b/spine-unity/Assets/Examples/Spine/Runtime Template Material.mat @@ -0,0 +1,76 @@ +%YAML 1.1 +%TAG !u! tag:unity3d.com,2011: +--- !u!21 &2100000 +Material: + serializedVersion: 6 + m_ObjectHideFlags: 0 + m_PrefabParentObject: {fileID: 0} + m_PrefabInternal: {fileID: 0} + m_Name: Runtime Template Material + m_Shader: {fileID: 4800000, guid: 1e8a610c9e01c3648bac42585e5fc676, type: 3} + m_ShaderKeywords: + m_LightmapFlags: 4 + m_EnableInstancingVariants: 0 + m_DoubleSidedGI: 0 + m_CustomRenderQueue: -1 + stringTagMap: {} + disabledShaderPasses: [] + m_SavedProperties: + serializedVersion: 3 + m_TexEnvs: + - _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: + - _BumpScale: 1 + - _Cutoff: 0.5 + - _DetailNormalMapScale: 1 + - _DstBlend: 0 + - _GlossMapScale: 1 + - _Glossiness: 0.5 + - _GlossyReflections: 1 + - _Metallic: 0 + - _Mode: 0 + - _OcclusionStrength: 1 + - _Parallax: 0.02 + - _SmoothnessTextureChannel: 0 + - _SpecularHighlights: 1 + - _SrcBlend: 1 + - _UVSec: 0 + - _ZWrite: 1 + m_Colors: + - _Color: {r: 1, g: 1, b: 1, a: 1} + - _EmissionColor: {r: 0, g: 0, b: 0, a: 1} diff --git a/spine-unity/Assets/Examples/Spine/Runtime Template Material.mat.meta b/spine-unity/Assets/Examples/Spine/Runtime Template Material.mat.meta new file mode 100644 index 000000000..c8e787cf9 --- /dev/null +++ b/spine-unity/Assets/Examples/Spine/Runtime Template Material.mat.meta @@ -0,0 +1,9 @@ +fileFormatVersion: 2 +guid: 365eb017d7ae7134d820c8b808eeb121 +timeCreated: 1500250447 +licenseType: Free +NativeFormatImporter: + mainObjectFileID: 2100000 + userData: + assetBundleName: + assetBundleVariant: