Yeah that sounds great Nate. I had thought about doing a generic implementation of creating child GameObjects for different bones, allowing the user to attach various bits and pieces to them, and you mentioning attaching particle emitters and so on makes it sound like it could be quite useful.
Regarding the bone.WorldScaleX thing, sorry for my poor explanation. At the moment what I do is create a child GameObject and place it at a location equivalent to the Bounding Boxes parent Bone. I do this by setting its transform.localPosition to the Bone WorldX/Y, it's transform.localRotation is set to Bone WorldRotation and scale equivelantly too. I am able to do this because they (WorldX/Y) are relative to the root GameObject, which is the direct parent of this child GameObject.
I then create the mesh from the supplied polygon, however I create it relative to the Bone GameObject I just created rather than the root GameObject, something like this when grabbing the vertices...
vertices.Add(new Vector2(polygon.Vertices[i] - parentBone.WorldX, polygon.Vertices[i + 1] - parentBone.WorldY));
Above, you can see that I offset against the Bounding Box's bone's position. Given the above setup, I then only have to update the position/rotation/scale of the child GameObject each frame to reflect the Bounding Box's bone's position/rotation/scale. The Mesh representing the Bounding Box is inherently transformed by doing so. Therefore, I avoid having to update the mesh collider's vertices each frame to match the Bounding Box polygon. It seemed like a good solution at the time as I thought it would have less overhead. But the issue is that if a Bounding Box is not present on initialisation (switched off) then the mesh geometry will not be created. When it then needs to be switched on for the first time in an animation, the mesh geometry will need to be caculated at runtime. I just wanted a way to iterate through all potential Bounding Boxes, even those switched off at the start, so I can create them. However, I figured looking in the .json file for them might not be sufficient for setup given that I also need the WorldX/Y and so on calculations for the initial position, rotation and scale of the parent Bone.
Hmmmm... I hope you can make sense of the above, because reading it back, it does sound a little convoluted. Also if you think the above method is stupid then I can move to updating vertices each frame (which is simply copying your polygon vertices each frame).
Again many thanks for your time Nate
Rob