This is the problematic code:
// \Spine\Runtime\spine-sharp\Atlas.cs
if (region.degrees == 90) {
region.u2 = (region.x + region.height) / (float)page.width;
region.v2 = (region.y + region.width) / (float)page.height;
(region.packedWidth, region.packedHeight) = (region.packedHeight, region.packedWidth);
} else {
region.u2 = (region.x + region.width) / (float)page.width;
region.v2 = (region.y + region.height) / (float)page.height;
}
if I change this:if (region.degrees == 90) {
region.u2 = (region.x + region.height) / (float)page.width;
region.v2 = (region.y + region.width) / (float)page.height;
(region.packedWidth, region.packedHeight) = (region.packedHeight, region.packedWidth);
} else {
region.u2 = (region.x + region.width) / (float)page.width;
region.v2 = (region.y + region.height) / (float)page.height;
}
if (region.degrees == 90)
to this:if (region.degrees is 90 or 270)
it works properly, and ideas?P.S
I attached a minimal project extracted from my main one to reproduce the bug.
It also writes log warnings for the 3 regions that aren't rotated.
Just run it and you'll understand everything.