From 254ee1f8a792d21a405dfd640c5070ded3c9fd41 Mon Sep 17 00:00:00 2001 From: John Date: Mon, 29 May 2017 18:22:24 +0800 Subject: [PATCH 1/6] [unity] Handle TextAssets not found. --- .../Assets/spine-unity/Editor/SpineEditorUtilities.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs index 4716e4d05..1ff346f54 100644 --- a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs +++ b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs @@ -567,7 +567,8 @@ namespace Spine.Unity.Editor { imagePaths.Add(str); break; case ".json": - if (IsSpineData((TextAsset)AssetDatabase.LoadAssetAtPath(str, typeof(TextAsset)))) + var jsonAsset = (TextAsset)AssetDatabase.LoadAssetAtPath(str, typeof(TextAsset)); + if (jsonAsset != null && IsSpineData(jsonAsset)) skeletonPaths.Add(str); break; case ".bytes": @@ -1186,6 +1187,8 @@ namespace Spine.Unity.Editor { } public static bool IsSpineData (TextAsset asset) { + if (asset == null) return false; + bool isSpineData = false; string rawVersion = null; From 9cc2fa6a2b3c9afa8d5e5efb458140fece10d172 Mon Sep 17 00:00:00 2001 From: John Date: Thu, 8 Jun 2017 01:09:01 +0800 Subject: [PATCH 2/6] [unity] Handle obsolete DotCap call. --- .../spine-unity/Editor/SpineEditorUtilities.cs | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs index 1ff346f54..32cf97d05 100644 --- a/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs +++ b/spine-unity/Assets/spine-unity/Editor/SpineEditorUtilities.cs @@ -1675,13 +1675,21 @@ namespace Spine.Unity.Editor { const float endCapSize = 0.05f; Vector3 firstPoint = m.MultiplyPoint(new Vector3(pv[2], pv[3])); - Handles.DotCap(0, firstPoint, Quaternion.identity, endCapSize * HandleUtility.GetHandleSize(firstPoint)); - // if (!p.Closed) Handles.DotCap(0, m.MultiplyPoint(new Vector3(pv[n - 4], pv[n - 3])), q, endCapSize); + SpineHandles.DrawDot(firstPoint, endCapSize); + //if (!p.Closed) SpineHandles.DrawDot(m.MultiplyPoint(new Vector3(pv[n - 4], pv[n - 3])), endCapSize); if (includeName) Handles.Label(firstPoint + new Vector3(0,0.1f), p.Name, PathNameStyle); Handles.color = ocolor; } + public static void DrawDot (Vector3 position, float size) { + #if UNITY_5_6_OR_NEWER + Handles.DotHandleCap(0, position, Quaternion.identity, size * HandleUtility.GetHandleSize(position), EventType.Ignore); + #else + Handles.DotCap(0, position, Quaternion.identity, size * HandleUtility.GetHandleSize(position)); + #endif + } + public static void DrawBoundingBoxes (Transform transform, Skeleton skeleton) { foreach (var slot in skeleton.Slots) { var bba = slot.Attachment as BoundingBoxAttachment; From dd0f489eae6f3da17df2326bce2cbd7e7600375f Mon Sep 17 00:00:00 2001 From: John Date: Sat, 10 Jun 2017 02:02:41 +0800 Subject: [PATCH 3/6] [unity] Ignore non-Spine dummy AnimationClips. --- .../Assets/spine-unity/SkeletonAnimator.cs | 25 +++++++++++++------ 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/spine-unity/Assets/spine-unity/SkeletonAnimator.cs b/spine-unity/Assets/spine-unity/SkeletonAnimator.cs index 135f92f58..fb264092a 100644 --- a/spine-unity/Assets/spine-unity/SkeletonAnimator.cs +++ b/spine-unity/Assets/spine-unity/SkeletonAnimator.cs @@ -90,6 +90,7 @@ namespace Spine.Unity { System.Array.Resize(ref layerMixModes, animator.layerCount); //skeleton.Update(Time.deltaTime); // Doesn't actually do anything, currently. (Spine 3.5). + Spine.Animation spineAnimation; // Clear Previous if (autoReset) { @@ -111,13 +112,15 @@ namespace Spine.Unity { for (int c = 0; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - previousAnimations.Add(animationTable[NameHashCode(info.clip)]); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) previousAnimations.Add(spineAnimation); } if (hasNext) { for (int c = 0; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - previousAnimations.Add(animationTable[NameHashCode(info.clip)]); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) previousAnimations.Add(spineAnimation); } } } @@ -142,12 +145,14 @@ namespace Spine.Unity { // Always use Mix instead of Applying the first non-zero weighted clip. for (int c = 0; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable[NameHashCode(info.clip)].Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, weight, false, false); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, weight, false, false); } if (hasNext) { for (int c = 0; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable[NameHashCode(info.clip)].Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length, nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); } } } else { // case MixNext || SpineStyle @@ -155,13 +160,15 @@ namespace Spine.Unity { int c = 0; for (; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable[NameHashCode(info.clip)].Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, 1f, false, false); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, 1f, false, false); break; } // Mix the rest for (; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable[NameHashCode(info.clip)].Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, weight, false, false); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, weight, false, false); } c = 0; @@ -170,14 +177,16 @@ namespace Spine.Unity { if (mode == MixMode.SpineStyle) { for (; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable[NameHashCode(info.clip)].Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, 1f, false, false); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, 1f, false, false); break; } } // Mix the rest for (; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable[NameHashCode(info.clip)].Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); + animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); + if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); } } } From 0554c5bb97cd92005fac0a4f067e06bd9e295636 Mon Sep 17 00:00:00 2001 From: John Date: Sat, 10 Jun 2017 02:27:24 +0800 Subject: [PATCH 4/6] [unity] SkeletonAnimator log errors. --- .../Assets/spine-unity/SkeletonAnimator.cs | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/spine-unity/Assets/spine-unity/SkeletonAnimator.cs b/spine-unity/Assets/spine-unity/SkeletonAnimator.cs index fb264092a..db961559c 100644 --- a/spine-unity/Assets/spine-unity/SkeletonAnimator.cs +++ b/spine-unity/Assets/spine-unity/SkeletonAnimator.cs @@ -145,14 +145,18 @@ namespace Spine.Unity { // Always use Mix instead of Applying the first non-zero weighted clip. for (int c = 0; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); - if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, weight, false, false); + if (animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation)) + spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed < 0), stateInfo.loop, null, weight, false, false); + else if (logErrors) + SkeletonAnimator.LogMissingAnimationClip(this, info.clip.name); } if (hasNext) { for (int c = 0; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); - if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length, nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); + if (animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation)) + spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime, info.clip.length, nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); + else if (logErrors) + SkeletonAnimator.LogMissingAnimationClip(this, info.clip.name); } } } else { // case MixNext || SpineStyle @@ -160,15 +164,19 @@ namespace Spine.Unity { int c = 0; for (; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); - if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, 1f, false, false); + if (animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation)) + spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed < 0), stateInfo.loop, null, 1f, false, false); + else if (logErrors) + SkeletonAnimator.LogMissingAnimationClip(this, info.clip.name); break; } // Mix the rest for (; c < clipInfo.Length; c++) { var info = clipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); - if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed <0), stateInfo.loop, null, weight, false, false); + if (animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation)) + spineAnimation.Apply(skeleton, 0, AnimationTime(stateInfo.normalizedTime, info.clip.length, stateInfo.loop, stateInfo.speed < 0), stateInfo.loop, null, weight, false, false); + else if (logErrors) + SkeletonAnimator.LogMissingAnimationClip(this, info.clip.name); } c = 0; @@ -177,16 +185,20 @@ namespace Spine.Unity { if (mode == MixMode.SpineStyle) { for (; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); - if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, 1f, false, false); + if (animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation)) + spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length, nextStateInfo.speed < 0), nextStateInfo.loop, null, 1f, false, false); + else if (logErrors) + SkeletonAnimator.LogMissingAnimationClip(this, info.clip.name); break; } } // Mix the rest for (; c < nextClipInfo.Length; c++) { var info = nextClipInfo[c]; float weight = info.weight * layerWeight; if (weight == 0) continue; - animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation); - if (spineAnimation != null) spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length,nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); + if (animationTable.TryGetValue(NameHashCode(info.clip), out spineAnimation)) + spineAnimation.Apply(skeleton, 0, AnimationTime(nextStateInfo.normalizedTime , info.clip.length, nextStateInfo.speed < 0), nextStateInfo.loop, null, weight, false, false); + else if (logErrors) + SkeletonAnimator.LogMissingAnimationClip(this, info.clip.name); } } } @@ -209,6 +221,10 @@ namespace Spine.Unity { } } + static void LogMissingAnimationClip (UnityEngine.Object o, string clipName) { + Debug.LogError("SkeletonAnimator " + o + "tried to use an AnimationClip [" + clipName + "] which not included in the main animation table."); + } + static float AnimationTime (float normalizedTime, float clipLength, bool loop, bool reversed) { if (reversed) normalizedTime = (1-normalizedTime + (int)normalizedTime) + (int)normalizedTime; From bf7a8db0ebafaccb6f2d58e43ed7ee12183840d4 Mon Sep 17 00:00:00 2001 From: John Date: Sun, 11 Jun 2017 08:10:16 +0800 Subject: [PATCH 5/6] [unity] Allow SkeletonGraphic runtime atlas. --- .../SkeletonGraphic/SkeletonGraphic.cs | 32 ++----------------- 1 file changed, 2 insertions(+), 30 deletions(-) diff --git a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs index b3087000b..d8646a278 100644 --- a/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs +++ b/spine-unity/Assets/spine-unity/Modules/SkeletonGraphic/SkeletonGraphic.cs @@ -28,36 +28,6 @@ * POSSIBILITY OF SUCH DAMAGE. *****************************************************************************/ -/****************************************************************************** - * Spine Runtimes Software License - * Version 2.3 - * - * Copyright (c) 2013-2015, Esoteric Software - * All rights reserved. - * - * You are granted a perpetual, non-exclusive, non-sublicensable and - * non-transferable license to use, install, execute and perform the Spine - * Runtimes Software (the "Software") and derivative works solely for personal - * or internal use. Without the written permission of Esoteric Software (see - * Section 2 of the Spine Software License Agreement), you may not (a) modify, - * translate, adapt or otherwise create derivative works, improvements of the - * Software or develop new applications using the Software or (b) remove, - * delete, alter or obscure any trademarks or any copyright, trademark, patent - * or other intellectual property or proprietary rights notices on or in the - * Software, including any copy thereof. Redistributions in binary or source - * form must include this license and terms. - * - * THIS SOFTWARE IS PROVIDED BY ESOTERIC SOFTWARE "AS IS" AND ANY EXPRESS OR - * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF - * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO - * EVENT SHALL ESOTERIC SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, - * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; - * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, - * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR - * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF - * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - *****************************************************************************/ #if (UNITY_5_0 || UNITY_5_1 || UNITY_4_0 || UNITY_4_1 || UNITY_4_2 || UNITY_4_3 || UNITY_4_4 || UNITY_4_5 || UNITY_4_6 || UNITY_4_7) #define PREUNITY_5_2 #endif @@ -127,9 +97,11 @@ namespace Spine.Unity { #if !PREUNITY_5_2 #region Internals // This is used by the UI system to determine what to put in the MaterialPropertyBlock. + public Texture OverrideTexture { get; set; } public override Texture mainTexture { get { // Fail loudly when incorrectly set up. + if (OverrideTexture != null) return OverrideTexture; return skeletonDataAsset == null ? null : skeletonDataAsset.atlasAssets[0].materials[0].mainTexture; } } From d4d2165b251fdd34925bb9f288c8537e03c6d0d9 Mon Sep 17 00:00:00 2001 From: "Mohammad S. Babaei" Date: Mon, 12 Jun 2017 00:03:14 +0430 Subject: [PATCH 6/6] [ue4] make the plugin build on UE 4.16.x (#922) --- .../Source/SpineEditorPlugin/SpineEditorPlugin.Build.cs | 4 ++-- .../SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs | 4 ++-- spine-ue4/Source/SpineUE4.Target.cs | 2 +- spine-ue4/Source/SpineUE4/SpineUE4.Build.cs | 2 +- spine-ue4/Source/SpineUE4Editor.Target.cs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/SpineEditorPlugin.Build.cs b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/SpineEditorPlugin.Build.cs index 25a37d1cb..258106bb0 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/SpineEditorPlugin.Build.cs +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpineEditorPlugin/SpineEditorPlugin.Build.cs @@ -4,7 +4,7 @@ namespace UnrealBuildTool.Rules { public class SpineEditorPlugin : ModuleRules { - public SpineEditorPlugin(TargetInfo Target) + public SpineEditorPlugin(ReadOnlyTargetRules Target) : base(Target) { PublicIncludePaths.AddRange(new string[] { "SpineEditorPlugin/Public", "SpinePlugin/Public/spine-c/include" }); @@ -29,4 +29,4 @@ namespace UnrealBuildTool.Rules }); } } -} \ No newline at end of file +} diff --git a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs index dc8524d4d..1d9c80657 100644 --- a/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs +++ b/spine-ue4/Plugins/SpinePlugin/Source/SpinePlugin/SpinePlugin.Build.cs @@ -4,7 +4,7 @@ namespace UnrealBuildTool.Rules { public class SpinePlugin : ModuleRules { - public SpinePlugin(TargetInfo Target) + public SpinePlugin(ReadOnlyTargetRules Target) : base(Target) { PublicIncludePaths.AddRange(new string[] { "SpinePlugin/Public", "SpinePlugin/Public/spine-c/include" }); PrivateIncludePaths.AddRange(new string[] { "SpinePlugin/Private", "SpinePlugin/Public/spine-c/include" }); @@ -12,4 +12,4 @@ namespace UnrealBuildTool.Rules OptimizeCode = CodeOptimization.Never; } } -} \ No newline at end of file +} diff --git a/spine-ue4/Source/SpineUE4.Target.cs b/spine-ue4/Source/SpineUE4.Target.cs index c5288c9b5..c3b90d106 100644 --- a/spine-ue4/Source/SpineUE4.Target.cs +++ b/spine-ue4/Source/SpineUE4.Target.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; public class SpineUE4Target : TargetRules { - public SpineUE4Target(TargetInfo Target) + public SpineUE4Target(ReadOnlyTargetRules Target) : base(Target) { Type = TargetType.Game; } diff --git a/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs b/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs index 08f863be8..8bbfbf82c 100644 --- a/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs +++ b/spine-ue4/Source/SpineUE4/SpineUE4.Build.cs @@ -4,7 +4,7 @@ using UnrealBuildTool; public class SpineUE4 : ModuleRules { - public SpineUE4(TargetInfo Target) + public SpineUE4(ReadOnlyTargetRules Target) : base(Target) { PublicDependencyModuleNames.AddRange(new string[] { "Core", "CoreUObject", "Engine", "InputCore", "ProceduralMeshComponent" }); diff --git a/spine-ue4/Source/SpineUE4Editor.Target.cs b/spine-ue4/Source/SpineUE4Editor.Target.cs index 3b5458abe..c570829ad 100644 --- a/spine-ue4/Source/SpineUE4Editor.Target.cs +++ b/spine-ue4/Source/SpineUE4Editor.Target.cs @@ -5,7 +5,7 @@ using System.Collections.Generic; public class SpineUE4EditorTarget : TargetRules { - public SpineUE4EditorTarget(TargetInfo Target) + public SpineUE4EditorTarget(ReadOnlyTargetRules Target) : base(Target) { Type = TargetType.Editor; }