optimize
This commit is contained in:
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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);
|
||||
}
|
||||
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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()
|
||||
|
||||
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user