diff --git a/SpineViewer/Spine/Implementations/Spine/Spine21.cs b/SpineViewer/Spine/Implementations/Spine/Spine21.cs
index 09be4be..4811778 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine21.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine21.cs
@@ -111,15 +111,14 @@ namespace SpineViewer.Spine.Implementations.Spine
var fY = flipY;
var animations = animationState.Tracks.Where(te => te is not null).Select(te => te.Animation.Name).ToArray();
- var val = Math.Max(value, SCALE_MIN);
if (skeletonBinary is not null)
{
- skeletonBinary.Scale = val;
+ skeletonBinary.Scale = value;
skeletonData = skeletonBinary.ReadSkeletonData(SkelPath);
}
else if (skeletonJson is not null)
{
- skeletonJson.Scale = val;
+ skeletonJson.Scale = value;
skeletonData = skeletonJson.ReadSkeletonData(SkelPath);
}
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine36.cs b/SpineViewer/Spine/Implementations/Spine/Spine36.cs
index cc2cbe2..7382e9a 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine36.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine36.cs
@@ -110,15 +110,14 @@ namespace SpineViewer.Spine.Implementations.Spine
var fY = flipY;
var animations = animationState.Tracks.Where(te => te is not null).Select(te => te.Animation.Name).ToArray();
- var val = Math.Max(value, SCALE_MIN);
if (skeletonBinary is not null)
{
- skeletonBinary.Scale = val;
+ skeletonBinary.Scale = value;
skeletonData = skeletonBinary.ReadSkeletonData(SkelPath);
}
else if (skeletonJson is not null)
{
- skeletonJson.Scale = val;
+ skeletonJson.Scale = value;
skeletonData = skeletonJson.ReadSkeletonData(SkelPath);
}
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine38.cs b/SpineViewer/Spine/Implementations/Spine/Spine38.cs
index feb136a..bcb923f 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine38.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine38.cs
@@ -137,9 +137,11 @@ namespace SpineViewer.Spine.Implementations.Spine
protected override void addSkin(string name)
{
- if (!skinNames.Contains(name)) return;
- skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
- skeleton.SetSlotsToSetupPose();
+ if (skeletonData.FindSkin(name) is Skin sk)
+ {
+ skeleton.Skin.AddSkin(sk);
+ skeleton.SetSlotsToSetupPose();
+ }
}
protected override void clearSkin()
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine40.cs b/SpineViewer/Spine/Implementations/Spine/Spine40.cs
index 4a7ea42..f137e8f 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine40.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine40.cs
@@ -133,9 +133,11 @@ namespace SpineViewer.Spine.Implementations.Spine
protected override void addSkin(string name)
{
- if (!skinNames.Contains(name)) return;
- skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
- skeleton.SetSlotsToSetupPose();
+ if (skeletonData.FindSkin(name) is Skin sk)
+ {
+ skeleton.Skin.AddSkin(sk);
+ skeleton.SetSlotsToSetupPose();
+ }
}
protected override void clearSkin()
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine41.cs b/SpineViewer/Spine/Implementations/Spine/Spine41.cs
index c153110..1962e7a 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine41.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine41.cs
@@ -133,9 +133,11 @@ namespace SpineViewer.Spine.Implementations.Spine
protected override void addSkin(string name)
{
- if (!skinNames.Contains(name)) return;
- skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
- skeleton.SetSlotsToSetupPose();
+ if (skeletonData.FindSkin(name) is Skin sk)
+ {
+ skeleton.Skin.AddSkin(sk);
+ skeleton.SetSlotsToSetupPose();
+ }
}
protected override void clearSkin()
diff --git a/SpineViewer/Spine/Implementations/Spine/Spine42.cs b/SpineViewer/Spine/Implementations/Spine/Spine42.cs
index 8225de0..64c1e46 100644
--- a/SpineViewer/Spine/Implementations/Spine/Spine42.cs
+++ b/SpineViewer/Spine/Implementations/Spine/Spine42.cs
@@ -133,9 +133,11 @@ namespace SpineViewer.Spine.Implementations.Spine
protected override void addSkin(string name)
{
- if (!skinNames.Contains(name)) return;
- skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
- skeleton.SetSlotsToSetupPose();
+ if (skeletonData.FindSkin(name) is Skin sk)
+ {
+ skeleton.Skin.AddSkin(sk);
+ skeleton.SetSlotsToSetupPose();
+ }
}
protected override void clearSkin()
diff --git a/SpineViewer/Spine/Spine.cs b/SpineViewer/Spine/Spine.cs
index b2eee34..e72d863 100644
--- a/SpineViewer/Spine/Spine.cs
+++ b/SpineViewer/Spine/Spine.cs
@@ -30,11 +30,6 @@ namespace SpineViewer.Spine
///
protected const uint PREVIEW_HEIGHT = 256;
- ///
- /// 缩放最小值
- ///
- protected const float SCALE_MIN = 0.001f;
-
///
/// 创建特定版本的 Spine
///
@@ -174,7 +169,7 @@ namespace SpineViewer.Spine
public float Scale
{
get { lock (_lock) return scale; }
- set { lock (_lock) { scale = value; update(0); } }
+ set { lock (_lock) { scale = Math.Max(value, 0.001f); update(0); } }
}
protected abstract float scale { get; set; }
@@ -261,24 +256,22 @@ namespace SpineViewer.Spine
///
public string[] GetLoadedSkins() { lock (_lock) return loadedSkins.ToArray(); }
protected readonly List loadedSkins = [];
-
+
///
/// 加载指定皮肤, 添加至列表末尾, 如果不存在则忽略, 允许加载重复的值
///
- public void LoadSkin(string name)
+ public void LoadSkin(string name)
{
+ if (!skinNames.Contains(name)) return;
lock (_lock)
{
- if (skinNames.Contains(name))
- {
- loadedSkins.Add(name);
- reloadSkins();
+ loadedSkins.Add(name);
+ reloadSkins();
- if (!skinLoggerWarned && Version <= SpineVersion.V37 && loadedSkins.Count > 1)
- {
- logger.Warn($"Multiplt skins not supported in SpineVersion {Version.GetName()}");
- skinLoggerWarned = true;
- }
+ if (!skinLoggerWarned && Version <= SpineVersion.V37 && loadedSkins.Count > 1)
+ {
+ logger.Warn($"Multiplt skins not supported in SpineVersion {Version.GetName()}");
+ skinLoggerWarned = true;
}
}
}
@@ -288,13 +281,11 @@ namespace SpineViewer.Spine
///
public void UnloadSkin(int idx)
{
+ if (idx < 0 || idx >= loadedSkins.Count) return;
lock (_lock)
{
- if (idx >= 0 && idx < loadedSkins.Count)
- {
- loadedSkins.RemoveAt(idx);
- reloadSkins();
- }
+ loadedSkins.RemoveAt(idx);
+ reloadSkins();
}
}
@@ -303,13 +294,11 @@ namespace SpineViewer.Spine
///
public void ReplaceSkin(int idx, string name)
{
+ if (idx < 0 || idx >= loadedSkins.Count || !skinNames.Contains(name)) return;
lock (_lock)
{
- if (idx >= 0 && idx < loadedSkins.Count && skinNames.Contains(name))
- {
- loadedSkins[idx] = name;
- reloadSkins();
- }
+ loadedSkins[idx] = name;
+ reloadSkins();
}
}
@@ -325,7 +314,7 @@ namespace SpineViewer.Spine
}
///
- /// 加载皮肤, 之后需要使用 来复位
+ /// 加载皮肤, 如果不存在则忽略
///
protected abstract void addSkin(string name);