[unity] Minor cleanup of SkeletonBaker code.

This commit is contained in:
pharan 2017-09-30 20:39:24 +08:00
parent 4b3710abae
commit be753eb672

View File

@ -457,7 +457,7 @@ namespace Spine.Unity.Editor {
static Bone extractionBone; static Bone extractionBone;
static Slot extractionSlot; static Slot extractionSlot;
static Bone GetExtractionBone () { internal static Bone GetExtractionBone () {
if (extractionBone != null) if (extractionBone != null)
return extractionBone; return extractionBone;
@ -479,7 +479,7 @@ namespace Spine.Unity.Editor {
return extractionBone; return extractionBone;
} }
static Slot GetExtractionSlot () { internal static Slot GetExtractionSlot () {
if (extractionSlot != null) if (extractionSlot != null)
return extractionSlot; return extractionSlot;
@ -491,11 +491,14 @@ namespace Spine.Unity.Editor {
return extractionSlot; return extractionSlot;
} }
static Mesh ExtractRegionAttachment (string name, RegionAttachment attachment, Mesh mesh = null) { internal static Mesh ExtractRegionAttachment (string name, RegionAttachment attachment, Mesh mesh = null, bool centered = true) {
var bone = GetExtractionBone(); var bone = GetExtractionBone();
bone.X = -attachment.X; if (centered) {
bone.Y = -attachment.Y; bone.X = -attachment.X;
bone.Y = -attachment.Y;
}
bone.UpdateWorldTransform(); bone.UpdateWorldTransform();
Vector2[] uvs = ExtractUV(attachment.UVs); Vector2[] uvs = ExtractUV(attachment.UVs);
@ -504,12 +507,13 @@ namespace Spine.Unity.Editor {
Vector3[] verts = ExtractVerts(floatVerts); Vector3[] verts = ExtractVerts(floatVerts);
//unrotate verts now that they're centered //unrotate verts now that they're centered
for (int i = 0; i < verts.Length; i++) { if (centered) {
verts[i] = Quaternion.Euler(0, 0, -attachment.Rotation) * verts[i]; for (int i = 0; i < verts.Length; i++)
verts[i] = Quaternion.Euler(0, 0, -attachment.Rotation) * verts[i];
} }
int[] triangles = new int[6] { 1, 3, 0, 2, 3, 1 }; int[] triangles = { 1, 3, 0, 2, 3, 1 };
Color color = new Color(attachment.R, attachment.G, attachment.B, attachment.A); Color color = attachment.GetColor();
if (mesh == null) if (mesh == null)
mesh = new Mesh(); mesh = new Mesh();
@ -519,7 +523,7 @@ namespace Spine.Unity.Editor {
mesh.vertices = verts; mesh.vertices = verts;
mesh.uv = uvs; mesh.uv = uvs;
mesh.triangles = triangles; mesh.triangles = triangles;
mesh.colors = new Color[] { color, color, color, color }; mesh.colors = new [] { color, color, color, color };
mesh.RecalculateBounds(); mesh.RecalculateBounds();
mesh.RecalculateNormals(); mesh.RecalculateNormals();
mesh.name = name; mesh.name = name;
@ -527,7 +531,7 @@ namespace Spine.Unity.Editor {
return mesh; return mesh;
} }
static Mesh ExtractMeshAttachment (string name, MeshAttachment attachment, Mesh mesh = null) { internal static Mesh ExtractMeshAttachment (string name, MeshAttachment attachment, Mesh mesh = null) {
var slot = GetExtractionSlot(); var slot = GetExtractionSlot();
slot.Bone.X = 0; slot.Bone.X = 0;
@ -592,7 +596,7 @@ namespace Spine.Unity.Editor {
} }
} }
static Mesh ExtractWeightedMeshAttachment (string name, MeshAttachment attachment, int slotIndex, SkeletonData skeletonData, List<Transform> boneList, Mesh mesh = null) { internal static Mesh ExtractWeightedMeshAttachment (string name, MeshAttachment attachment, int slotIndex, SkeletonData skeletonData, List<Transform> boneList, Mesh mesh = null) {
if (attachment.Bones == null) if (attachment.Bones == null)
throw new System.ArgumentException("Mesh is not weighted.", "attachment"); throw new System.ArgumentException("Mesh is not weighted.", "attachment");
@ -708,7 +712,7 @@ namespace Spine.Unity.Editor {
return mesh; return mesh;
} }
static Vector2[] ExtractUV (float[] floats) { internal static Vector2[] ExtractUV (float[] floats) {
Vector2[] arr = new Vector2[floats.Length / 2]; Vector2[] arr = new Vector2[floats.Length / 2];
for (int i = 0; i < floats.Length; i += 2) { for (int i = 0; i < floats.Length; i += 2) {
@ -718,7 +722,7 @@ namespace Spine.Unity.Editor {
return arr; return arr;
} }
static Vector3[] ExtractVerts (float[] floats) { internal static Vector3[] ExtractVerts (float[] floats) {
Vector3[] arr = new Vector3[floats.Length / 2]; Vector3[] arr = new Vector3[floats.Length / 2];
for (int i = 0; i < floats.Length; i += 2) { for (int i = 0; i < floats.Length; i += 2) {