optimize
This commit is contained in:
@@ -111,15 +111,14 @@ namespace SpineViewer.Spine.Implementations.Spine
|
|||||||
var fY = flipY;
|
var fY = flipY;
|
||||||
var animations = animationState.Tracks.Where(te => te is not null).Select(te => te.Animation.Name).ToArray();
|
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)
|
if (skeletonBinary is not null)
|
||||||
{
|
{
|
||||||
skeletonBinary.Scale = val;
|
skeletonBinary.Scale = value;
|
||||||
skeletonData = skeletonBinary.ReadSkeletonData(SkelPath);
|
skeletonData = skeletonBinary.ReadSkeletonData(SkelPath);
|
||||||
}
|
}
|
||||||
else if (skeletonJson is not null)
|
else if (skeletonJson is not null)
|
||||||
{
|
{
|
||||||
skeletonJson.Scale = val;
|
skeletonJson.Scale = value;
|
||||||
skeletonData = skeletonJson.ReadSkeletonData(SkelPath);
|
skeletonData = skeletonJson.ReadSkeletonData(SkelPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -110,15 +110,14 @@ namespace SpineViewer.Spine.Implementations.Spine
|
|||||||
var fY = flipY;
|
var fY = flipY;
|
||||||
var animations = animationState.Tracks.Where(te => te is not null).Select(te => te.Animation.Name).ToArray();
|
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)
|
if (skeletonBinary is not null)
|
||||||
{
|
{
|
||||||
skeletonBinary.Scale = val;
|
skeletonBinary.Scale = value;
|
||||||
skeletonData = skeletonBinary.ReadSkeletonData(SkelPath);
|
skeletonData = skeletonBinary.ReadSkeletonData(SkelPath);
|
||||||
}
|
}
|
||||||
else if (skeletonJson is not null)
|
else if (skeletonJson is not null)
|
||||||
{
|
{
|
||||||
skeletonJson.Scale = val;
|
skeletonJson.Scale = value;
|
||||||
skeletonData = skeletonJson.ReadSkeletonData(SkelPath);
|
skeletonData = skeletonJson.ReadSkeletonData(SkelPath);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -137,10 +137,12 @@ namespace SpineViewer.Spine.Implementations.Spine
|
|||||||
|
|
||||||
protected override void addSkin(string name)
|
protected override void addSkin(string name)
|
||||||
{
|
{
|
||||||
if (!skinNames.Contains(name)) return;
|
if (skeletonData.FindSkin(name) is Skin sk)
|
||||||
skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
|
{
|
||||||
|
skeleton.Skin.AddSkin(sk);
|
||||||
skeleton.SetSlotsToSetupPose();
|
skeleton.SetSlotsToSetupPose();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void clearSkin()
|
protected override void clearSkin()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -133,10 +133,12 @@ namespace SpineViewer.Spine.Implementations.Spine
|
|||||||
|
|
||||||
protected override void addSkin(string name)
|
protected override void addSkin(string name)
|
||||||
{
|
{
|
||||||
if (!skinNames.Contains(name)) return;
|
if (skeletonData.FindSkin(name) is Skin sk)
|
||||||
skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
|
{
|
||||||
|
skeleton.Skin.AddSkin(sk);
|
||||||
skeleton.SetSlotsToSetupPose();
|
skeleton.SetSlotsToSetupPose();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void clearSkin()
|
protected override void clearSkin()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -133,10 +133,12 @@ namespace SpineViewer.Spine.Implementations.Spine
|
|||||||
|
|
||||||
protected override void addSkin(string name)
|
protected override void addSkin(string name)
|
||||||
{
|
{
|
||||||
if (!skinNames.Contains(name)) return;
|
if (skeletonData.FindSkin(name) is Skin sk)
|
||||||
skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
|
{
|
||||||
|
skeleton.Skin.AddSkin(sk);
|
||||||
skeleton.SetSlotsToSetupPose();
|
skeleton.SetSlotsToSetupPose();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void clearSkin()
|
protected override void clearSkin()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -133,10 +133,12 @@ namespace SpineViewer.Spine.Implementations.Spine
|
|||||||
|
|
||||||
protected override void addSkin(string name)
|
protected override void addSkin(string name)
|
||||||
{
|
{
|
||||||
if (!skinNames.Contains(name)) return;
|
if (skeletonData.FindSkin(name) is Skin sk)
|
||||||
skeleton.Skin.AddSkin(skeletonData.FindSkin(name));
|
{
|
||||||
|
skeleton.Skin.AddSkin(sk);
|
||||||
skeleton.SetSlotsToSetupPose();
|
skeleton.SetSlotsToSetupPose();
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
protected override void clearSkin()
|
protected override void clearSkin()
|
||||||
{
|
{
|
||||||
|
|||||||
@@ -30,11 +30,6 @@ namespace SpineViewer.Spine
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
protected const uint PREVIEW_HEIGHT = 256;
|
protected const uint PREVIEW_HEIGHT = 256;
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 缩放最小值
|
|
||||||
/// </summary>
|
|
||||||
protected const float SCALE_MIN = 0.001f;
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 创建特定版本的 Spine
|
/// 创建特定版本的 Spine
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -174,7 +169,7 @@ namespace SpineViewer.Spine
|
|||||||
public float Scale
|
public float Scale
|
||||||
{
|
{
|
||||||
get { lock (_lock) return 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; }
|
protected abstract float scale { get; set; }
|
||||||
|
|
||||||
@@ -267,9 +262,8 @@ namespace SpineViewer.Spine
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public void LoadSkin(string name)
|
public void LoadSkin(string name)
|
||||||
{
|
{
|
||||||
|
if (!skinNames.Contains(name)) return;
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
|
||||||
if (skinNames.Contains(name))
|
|
||||||
{
|
{
|
||||||
loadedSkins.Add(name);
|
loadedSkins.Add(name);
|
||||||
reloadSkins();
|
reloadSkins();
|
||||||
@@ -281,37 +275,32 @@ namespace SpineViewer.Spine
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 卸载列表指定位置皮肤, 如果超出范围则忽略
|
/// 卸载列表指定位置皮肤, 如果超出范围则忽略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void UnloadSkin(int idx)
|
public void UnloadSkin(int idx)
|
||||||
{
|
{
|
||||||
|
if (idx < 0 || idx >= loadedSkins.Count) return;
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
|
||||||
if (idx >= 0 && idx < loadedSkins.Count)
|
|
||||||
{
|
{
|
||||||
loadedSkins.RemoveAt(idx);
|
loadedSkins.RemoveAt(idx);
|
||||||
reloadSkins();
|
reloadSkins();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 替换皮肤列表指定位置皮肤, 超出范围或者皮肤不存在则忽略
|
/// 替换皮肤列表指定位置皮肤, 超出范围或者皮肤不存在则忽略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void ReplaceSkin(int idx, string name)
|
public void ReplaceSkin(int idx, string name)
|
||||||
{
|
{
|
||||||
|
if (idx < 0 || idx >= loadedSkins.Count || !skinNames.Contains(name)) return;
|
||||||
lock (_lock)
|
lock (_lock)
|
||||||
{
|
|
||||||
if (idx >= 0 && idx < loadedSkins.Count && skinNames.Contains(name))
|
|
||||||
{
|
{
|
||||||
loadedSkins[idx] = name;
|
loadedSkins[idx] = name;
|
||||||
reloadSkins();
|
reloadSkins();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 重新加载现有皮肤列表, 用于刷新等操作
|
/// 重新加载现有皮肤列表, 用于刷新等操作
|
||||||
@@ -325,7 +314,7 @@ namespace SpineViewer.Spine
|
|||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 加载皮肤, 之后需要使用 <see cref="setSlotsToSetupPose"/> 来复位
|
/// 加载皮肤, 如果不存在则忽略
|
||||||
/// </summary>
|
/// </summary>
|
||||||
protected abstract void addSkin(string name);
|
protected abstract void addSkin(string name);
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user