This commit is contained in:
ww-rm
2025-04-05 09:40:02 +08:00
parent 95261e6907
commit 153d3603d2
7 changed files with 41 additions and 46 deletions

View File

@@ -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);
}

View File

@@ -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);
}

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -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()

View File

@@ -30,11 +30,6 @@ namespace SpineViewer.Spine
/// </summary>
protected const uint PREVIEW_HEIGHT = 256;
/// <summary>
/// 缩放最小值
/// </summary>
protected const float SCALE_MIN = 0.001f;
/// <summary>
/// 创建特定版本的 Spine
/// </summary>
@@ -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; }
@@ -267,18 +262,16 @@ namespace SpineViewer.Spine
/// </summary>
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
/// </summary>
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
/// </summary>
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
}
/// <summary>
/// 加载皮肤, 之后需要使用 <see cref="setSlotsToSetupPose"/> 来复位
/// 加载皮肤, 如果不存在则忽略
/// </summary>
protected abstract void addSkin(string name);