修复空帧导致的包围盒计算错误
This commit is contained in:
@@ -110,6 +110,8 @@ namespace Spine
|
||||
break;
|
||||
}
|
||||
|
||||
if (verticesLength > 0)
|
||||
{
|
||||
for (int ii = 0; ii + 1 < verticesLength; ii += 2)
|
||||
{
|
||||
float vx = vertices[ii];
|
||||
@@ -120,11 +122,31 @@ namespace Spine
|
||||
maxY = Math.Max(maxY, vy);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
var boneX = slot.Bone.WorldX;
|
||||
var boneY = slot.Bone.WorldY;
|
||||
minX = Math.Min(minX, boneX);
|
||||
minY = Math.Min(minY, boneY);
|
||||
maxX = Math.Max(maxX, boneX);
|
||||
maxY = Math.Max(maxY, boneY);
|
||||
}
|
||||
}
|
||||
if (minX >= int.MaxValue || minY >= int.MaxValue || maxX <= int.MinValue || maxY <= int.MinValue)
|
||||
{
|
||||
x = self.X;
|
||||
y = self.Y;
|
||||
w = 0;
|
||||
h = 0;
|
||||
}
|
||||
else
|
||||
{
|
||||
x = minX;
|
||||
y = minY;
|
||||
w = maxX - minX;
|
||||
h = maxY - minY;
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
/// 命中测试, 当插槽全透明或者处于禁用或者骨骼处于未激活则无法命中
|
||||
|
||||
Reference in New Issue
Block a user